質問: null; } } DataBaseInit(); if(!BusyCheck($u_id)) { // u_idはユニークな文字列 // プログラムを終了させる処理 } ・ ・ // 行いたい処理処理 ・ ProcessDBDelete() ``` このような感じで処理をかいています。 複数同時にプログラムを実行させても、一つのデリートが終わるまで、次の待っているインサートが始まりません。 なので、テーブルを見ていると前のレコードが消えたと同時に次のレコードがインサートされ、待っている状態になっています。 これを待たずに制限いっぱいのレコードのときは処理を終了させるようにできないでしょうか? ``` mysql > show variables like 'max_connections'; ``` で同時接続数を確認しましたところ、100を超える数字になっており同時接続が問題無いように感じました。 同時にプログラムを実行させるときに、違うPC、違うIPでも試しましたが、常に待っている状態でした。 一つ気になることが、私一人で複数実行したときは最大で一つしかレコードが入りませんでした。 同じIPでは、一つのプロセスが終わるまで次のプロセスが実行されないのでしょうか?
回答: 処理の実行をプロシージャで行うことにし トランザクションを設定した上でコミットする前に当該テーブルをチェックし 想定外であればロールバックすればよいのでは?