2017-10-16 47 views
0

私はPHPプログラムを作成しており、同じレコードの同時ユーザー更新/削除を避けるために行レベルのロックを実装したいと考えています。MySQL phpmyadmin - SELECT FOR UPDATEが認識されない

しかし、SELECT FOR UPDATEを使用すると、「Unrecognized keyword」というエラーが発生しました。テーブルタイプは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は、MySQL構文ではなくOracleデータベース構文です。 –

答えて

0

構文エラーがこれをそこ試してみてくださいされています:

そのすべてのレコードを選択1から30まで

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

レコードをロックするSELECT FOR UPDATEステートメントを使用しようとしています。他のユーザーがUPDATE/DELETEアクションを実行できないようにしています。 –

関連する問題