2017-10-16 147 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操作。 –