teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

成功した方法をコメントから拾ってくる

2020/05/31 05:16

投稿

hope_mucci
hope_mucci

スコア4447

answer CHANGED
@@ -3,4 +3,12 @@
3
3
  なぜなら`START TRANSACTION`を実施すると既存のロックは全て解消されてしまうからです。つまり、テーブルロックを先に行っても意味なし。
4
4
  質問者がリンクを張ったMySQLのドキュメントにしっかり明記されていますのでもう一度読んでみてください。
5
5
 
6
- 根本原因は追記依頼にも書きましたが、きちんとロールバック処理に進んでいればautocommitが怪しく、コミット処理側に進んでいればsub1へinsertした際の戻り値が怪しいです。
6
+ 根本原因は追記依頼にも書きましたが、きちんとロールバック処理に進んでいればautocommitが怪しく、コミット処理側に進んでいればsub1へinsertした際の戻り値が怪しいです。
7
+
8
+ ### 追記
9
+ コメントより、以下の方法でうまく動作したそうです。autocommitの値を変更する方法。
10
+ ```php
11
+ $wpdb->query('SET autocommit=0'); // これで0を指定
12
+ // $wpdb->query('START TRANSACTION'); // これは不要
13
+ $wpdb->query('LOCK TABLES wp_mains WRITE, wp_sub1s WRITE');
14
+ ```