2012-05-30

MySQLでトランザクション

LAMP環境で動いているシステムでレコードロックが発生してしまった。


原因は、処理の途中でブラウザを閉じてしまったこと。


トランザクション制御はきちんとしていた「つもり」だったんだけど、


やっぱり抜けていたところがあったようだ。





所謂「ワークテーブル」がロックしていたので、

とりあえず、


truncate table tablename;



とやって強制的にトランザクションを終了させ、テーブルを空にした。



PHP + MySQL で開発を始めたころに、MySQLの接続が途中で「ブチッ」て切られたときの挙動を調べていたはずだったのだが、そのサイトをブックマークしておくのを忘れ、今日、慌てて探した。



MySQLのAUTOCOMMIT(オートコミット)覚え書き
http://open-groove.net/mysql/autocommit/


お世話になりました。

0 件のコメント:

コメントを投稿

INSERTしてからUPDATEする

UPSERT/MERGEの話ではない。 INSERT文とUPDATE文の両方をメンテナンスするのが面倒になってきた。 REPLACE文はDELETE走るし、MERGEは結局INSERT/UPDATEの両方にすべての項目を書かないといけないし、INSERTとUPDATEの両方で入力...