1196
MariaDBWARNINGNotableTransactionHIGH confidence

Non-transactional tables could not be rolled back

Production Risk

High — partial rollback leaves MyISAM changes in place, causing data inconsistency.

What this means

ER_WARNING_NOT_COMPLETE_ROLLBACK (1196, SQLSTATE HY000) is a warning issued when a ROLLBACK is executed but some tables modified in the transaction use non-transactional storage engines (e.g., MyISAM) and cannot be rolled back.

Why it happens
  1. 1Modifying a MyISAM table inside a transaction and then rolling back
  2. 2Mixed-engine transactions where both InnoDB and MyISAM tables are updated
How to reproduce
trigger — this will error
trigger — this will error
START TRANSACTION;
INSERT INTO innodb_table VALUES (1);
INSERT INTO myisam_table VALUES (1);  -- non-transactional
ROLLBACK;  -- MyISAM change cannot be undone

expected output

Warning (Code 1196): Some non-transactional changed tables couldn't be rolled back

Fix

Migrate non-transactional tables to InnoDB

Migrate non-transactional tables to InnoDB
ALTER TABLE myisam_table ENGINE = InnoDB;

Why this works

InnoDB supports full ACID transactions including rollback, eliminating this warning.

Sources
Official documentation ↗

MySQL 8.0 — 1196 ER_WARNING_NOT_COMPLETE_ROLLBACK

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All MariaDB errors