【发布时间】:2013-06-12 12:57:26
【问题描述】:
一个新项目迫使我在处理更新时锁定了一个表。我遵循了我能找到的所有建议和指南,包括How to lock mysql tables in php 和 http://dev.mysql.com/doc/refman/5.1/en/innodb-locking-reads.html,但我总是遇到同样的错误:#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'LIMIT 0, 30' 附近使用正确的语法
为了避开我的活表中任何可能的恶魔,我在 INNODB 引擎上创建了一个新表进行测试,添加了唯一索引,插入了几行,并使用以下语法进行查询:
SELECT svalue FROM `test` WHERE skey='key2' for update;
这会产生相同的错误。从查询中删除 for update; 允许查询运行而不会出错。
我不确定我做错了什么,并且已经尝试了我能想到的一切。请帮助我了解我缺少什么!
谢谢
【问题讨论】:
-
我遇到了同样的错误,即使将语句包装在事务中也是如此。我的服务器是 10.4.10-MariaDB
标签: mysql select sql-update