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