如何在以下错误消息中释放锁?
MySQL said: Table 'item_creation' was not locked with LOCK TABLES
这就是当我试图查看表时所显示的内容。第一,这是甚麽意思?第二,如何修复此错误?通常我所做的是重新启动mysql。
注意:这是在执行数据库导入之后发生的。
我正在编写一些代码,它使用行级锁定和MySQL (innodb后端)。
伪码是:
START TRANSACTION
SELECT * FROM foo WHERE foocondition FOR UPDATE
UPDATE foo set bar=value WHERE foocondition
COMMIT
我在mysql文档中找不到提交后持有的锁的信息。
我是否必须在提交后执行“解锁表”,还是它是隐式的?答案应该是“不”,但我想得到有关的反馈。
正如手册所述
On versions of PHP before 5.3.2, the lock is released also by fclose() (which is also called automatically when script finished).
据我所知,从5.3.2版本开始,锁不会自动释放。对吗?
此外,这还导致了这样一个问题:当客户端(通过HTTP请求或CLI)中止脚本执行时,是否释放了锁。