Ошибка дублирующего ключа не отменяет / откатывает транзакцию mysql

В транзакции mysql innodb я ожидаю, что ошибка дублирующего ключа вызовет откат. Это не так, вместо этого он просто выдает ошибку и переходит к следующей команде. Как только команда COMMIT будет достигнута, транзакция будет зафиксирована, без использования команды, вызывающей дубликат ключа.

Это ожидаемое поведение? Если так, как можно было бы настроить его так, чтобы при возникновении такой ошибки транзакция откатывалась вместо фиксации?

тестовая среда:

CREATE TABLE `test` (  
  `id` int(11) NOT NULL, 
  PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 

BEGIN;
     INSERT INTO test VALUES (5);
     INSERT INTO test VALUES (5);
COMMIT;

ожидаемый результат: таблицаtest пустой

фактический результат: таблицаtest содержит одну запись со значением 5

Ответы на вопрос(2)

Ваш ответ на вопрос