mysqlのコミットとトランザクションに関する質問があります。mysqlのコミットとトランザクション
私はmysqlクエリを実行するいくつかのPHP文を持っています。
私は次のように言いますか?
mysql_query("START TRANSACTION");
//more queries here
mysql_query("COMMIT");
これは正確には何ですか?どのように役立ちますか?更新については、削除および挿入私はまた、これは読書から他のクエリをブロックすることが分かっ:
mysql_query("LOCK TABLES t1 WRITE, t2 WRITE");
//more queries here
mysql_query("UNLOCK TABLES t1, t2");
は/選択を書き込み、どんな性質又はこのブロックだけが他のクエリのでしょうか?
もう1つの質問:1つのクエリが実行中で、他のクエリをブロックしているとします。別のクエリがブロックされたデータにアクセスしようとしました。ブロックされたデータが表示されます。それはどのように進んでいますか?データが再びブロック解除され、クエリを再実行するまで待機しますか?それはちょうど失敗し、繰り返される必要がありますか?もしそうなら、どうすれば確認できますか?
ありがとうございます!あなたが「オン」で自動コミットのデフォルト設定を変更していない場合
InnoDB内でデニス
InnoDBまたはMyISAMテーブルを使用していますか? – Daan
@ダーン私はInnoDBを使用して – weltschmerz