2017-10-16 103 views
0

我正在编写一个PHP程序,并希望实现行级锁定以避免并发用户更新/删除相同的记录。MySQL phpmyadmin - SELECT FOR UPDATE not recognized

但是当使用SELECT FOR UPDATE时,我输入错误“无法识别的关键字”。表类型是innoDB。

我是否缺少我的数据库的任何设置?

My SQL statement

SELECT * FROM companyTable 
WHERE companyId = "0000001" 
FOR UPDATE; 

SQL Error

错误
静态分析:在分析过程中发现

1个错误。

无法识别的关键字。 (靠近 “FOR” 57位)
SQL查询:文档

SELECT * FROM companyTable WHERE companyId = "0000001" FOR LIMIT 0, 30 

MySQL表示:文件

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 30' at line 3 
+0

什么是'FOR'? –

+0

SELECT [...] FOR UPDATE是Oracle数据库语法,不是MySQL语法。 –

回答

0

有一个语法错误试试这个:

其选择所有记录1 - 30

SELECT * FROM companyTable WHERE companyId = "0000001" ORDER BY id LIMIT 30; 
+0

我试图使用SELECT FOR UPDATE语句来锁定记录/阻止其他用户执行UPDATE/DELETE操作。 –