カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

MySQLトランザクションでROLLBACKが効かない

タイトルにもある通り、MySQLトランザクションにてROLLBACK(ロールバック)ができないケースがあります。
一連の処理を記述し、特定条件下やどこかで失敗した場合等に全てを元に戻せるということで非常に便利なROLLBACKですが、
ROLLBACKできないSQL文がトランザクションに含まれていた場合、ROLLBACK自体がエラーとなり元に戻らないことがあります。

ROLLBACKできないSQLの例
  • CREATE
  • DROP
  • ALTER
  • TRUNCATE
ROLLBACKできるSQL
  • INSERT
  • UPDATE
  • DELETE

但しこちらはMySQLに限ったお話ですので、他のDBの場合は要確認です。
他のDBではROLLBACKできる場合があります。

公式リファレンス
https://dev.mysql.com/doc/refman/8.0/ja/cannot-roll-back.html

この記事がお役に立ちましたらシェアお願いします
640 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です