0
ストアドプロシージャ内のトランザクションは、他のユーザによるテーブルの更新を防ぐためにロックを行いますか?ストアドプロシージャ(ロック/ロールバック)のmysqlトランザクション
また、私は明示的にロールバックロジックに入れる必要がありますか、コミットコマンドに到達しないためにエラーが発生した場合、トランザクションは自動的にロールバックされます。
ストアドプロシージャ内のトランザクションは、他のユーザによるテーブルの更新を防ぐためにロックを行いますか?ストアドプロシージャ(ロック/ロールバック)のmysqlトランザクション
また、私は明示的にロールバックロジックに入れる必要がありますか、コミットコマンドに到達しないためにエラーが発生した場合、トランザクションは自動的にロールバックされます。
ストアドプロシージャ内のトランザクションは、他のユーザーがテーブルを更新できないようにロックしますか?
あなたはInnoDB
テーブルの上にいくつかDML
を行う
ロックされた行は、ロックされた同じトランザクション内で変更できます。
が明示的にいくつかの行をロックするには、問題:コミットまたはトランザクションをロールバックを除き
SELECT *
FROM table
WHERE condition
FOR UPDATE
は、
iは明示的に配置する必要があります行のロックを解除する方法が他にありませんまたはコミットコマンドに到達しないためにエラーが発生した場合、トランザクションは自動的にロールバックされます。
明示的にロールバックを実行する必要があります。
私は、トランザクションの期間中、行がロックされたままになっているのかと思います。つまり、複数の更新がある場合は、それぞれの更新後にロックが解放されるか、トランザクション内にあるためにすべての更新が完了した後にのみロックが解放されます。 – richs
ロックはトランザクションの終了時まで保持されます。つまり、ロックの全体的なポイントです。 – Quassnoi