いくつかのステートメントはロールバックできません。通常、それらはデータベースを作成したりドロップしたりする物や、テーブルやストアド ルーチンを作成、ドロップ、変更する物のような、データ定義言語(DDL)ステートメントを含みます。
そのような物をトランザクション内に含まないようにデザインする必要があります。もしロールバックできないトランザクション内で、早いうちにステートメントを発行し、そして別のステートメントがその後失敗すると、そのような場合
ROLLBACK
ステートメントを発行する事によってそのトランザクション全体の効果をロールバックする事はできません。