私は、mysql テーブル t1 を読み取り、いくつかの操作を行う perl ファイル test.pl を持っています。
2 人のユーザーが同時に test.pl を実行する場合、1 人のユーザーが t1 への読み取りと書き込みをブロックする必要があります。
他のユーザーが t1 で操作を完了したら、他のユーザーが t1 で操作を開始できるようにします。
どうすればこれを達成できますか?
mysqlの「ロック」は使えますか?
または他のソリューション
LOCK TABLEを使用して、テーブルを明示的にロックできます。
ただし、実行中にデータの一貫性を保つためにトランザクションを使用することを検討したい場合がありますがtest.pl
、データベースを使用する他のプロセスを完全にロックすることはできません。
これがどのように機能するかは、使用しているデータベース エンジンによって異なります。そのため、トランザクションとアトミック操作に関するセクションも読む必要があります。