は、関数は次の構造を有する:MySQLのMyISAMの競合状態
$q = 'LOCK TABLES table1 WRITE;';
mysql_query($q);
$q = 'select id from table1 where is_delete = 0 limit 1;';
$res = mysql_fetch_assoc(mysql_query($q));
if($res) {
$q = 'UPDATE table1 SET is_delete = 1 WHERE id = '".$res['id']."'';
mysql_query($q);
}
$q = 'UNLOCK TABLES;';
mysql_query($q);
私はすべてのテーブルをロックしますが、クエリは、並列に実行します。 これをどのように修正しますか?あなたがLOCK TABLESをクエリに任意のMySQLのエラーを取得しているかどうかを
テーブルをロックするコードはどこですか? –
申し訳ありませんが、質問は更新されました – Merlin
あなたのユーザーはLOCK TABLES権限を持っていますか? – angrychimp