MySQL で InnoDB を使用しており、PDO を使用して PHP からテーブルにアクセスしています。
テーブルをロックし、選択を行い、その結果に応じて、行を挿入するかどうかを決定する必要があります。できるだけ短時間テーブルをロックしたいので、このようにできますか?
prepare select
prepare insert
begin transaction
lock table
execute select
if reservation time is available then execute insert
unlock table
commit
それとも、準備はトランザクション内にある必要がありますか? それとも、ロックの後にある必要がありますか?
トランザクションにはインサートのみを含める必要がありますか?それとも違いがありますか?