在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的记录。