在mysql innodb事務中,我期望重複鍵錯誤導致回滾。它不會,它只是拋出一個錯誤,並繼續到下一個命令。一旦COMMIT命令到達,事務將被提交,sans重複鍵導致命令。重複密鑰錯誤不取消/回滾mysql事務
這是預期的行爲?如果是這樣,那麼如何設置它,以便在出現這樣的錯誤時事務被回滾而不是提交?
測試環境:
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
參見:http://dev.mysql.com/doc/refman/5.0/en/innodb-error-handling。 html – 2013-06-11 20:23:48