2012-02-24 83 views
0

我在我的应用程序下面的笨(MySQL的相关的)错误笨和LOCK TABLES

Error Number: 1100 
Table 'users' was not locked with LOCK TABLES 
SELECT * FROM (`users`) WHERE `ID` = '1' 

我怎样才能解决这个问题 - 我试过UNLOCK TABLES但这并不解决问题,任何想法?

+0

需与重启MySQL万一有人不知道。 – Zabs 2012-02-24 11:50:16

+1

这是一个临时修复。根本原因可能仍然存在.... – landons 2012-02-24 17:24:02

回答

0

这意味着你在一个事务中或者在一个LOCK TABLES(你没有写代码,所以我假设你之前使用了一个LOCK TABLES)之后做了这个查询。

当您处于事务中时,您需要锁定您在FROM语句中使用的所有表,而不仅仅是要插入/更新的表。

您需要在您的LOCK TABLES语句中添加'users READ'。它告诉并发查询,从'users'表中读取是可以的,但不要写,因为你指望这些值是最新的。

本手册页几乎解释了这个错误: http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html