12

次のような InnoDB テーブルに対する mysql クエリがあります。

UPDATE items SET qty = qty + 5 WHERE item_id = 1234 LIMIT 1;

これにはトランザクションを使用する必要がありますか? トランザクションを使用しないことで望ましくないことが起こる可能性はありますか?

4

1 に答える 1

17

深刻なことは起こり得ません。デフォルトでは、MySQL は単一の更新/挿入/削除コマンドをすべてトランザクションにラップします。更新で問題が発生した場合、トランザクションは正しくロールバックされます。

複数の変更を組み合わせて、それらすべてを「同時に」または「まったく有効にしない」場合にのみ、トランザクションが必要です。

詳細については、ドキュメントを参照してください。

于 2013-07-25T11:20:44.710 に答える