在MySQL 5中运行脚本时,为什么启动事务和回滚无法回滚?

问题描述

| 我有以下脚本...
START TRANSACTION;

INSERT INTO `Image` (`id`,`created`,`deleted`,`fileName`,`used`) VALUES (-114,NULL,\'c21_1.jpg\',NULL);
INSERT INTO `Image` (`id`,`used`) VALUES (-115,\'c21_2.jpg\',`used`) VALUES (-116,\'c21_3.jpg\',`used`) VALUES (-117,\'c21_4.gif\',`used`) VALUES (-118,\'c21_5.gif\',`used`) VALUES (-119,\'c21_6.gif\',`used`) VALUES (-120,\'c21_7.gif\',`used`) VALUES (-121,\'AIRMILES_MIN_RBLUE.png\',`used`) VALUES (-122,\'c21_logo_commercial-WHT.png\',`used`) VALUES (-123,\'c21_logo_fhe_pms124-WHT.png\',`used`) VALUES (-124,\'CENTURY-21-logo-Century21.png\',`used`) VALUES (-125,\'Easter-Seals-logos-2005-008-1.png\',`used`) VALUES (-126,\'Easter-Seals-logos-2005-008-2.png\',`used`) VALUES (-127,\'kids-to-camp-EN.png\',NULL);



INSERT INTO `AgencyImage` (`agency_id`,`image_id`) VALUES   (1,-115);
INSERT INTO `AgencyImage` (`agency_id`,-116);
INSERT INTO `AgencyImage` (`agency_id`,-117);
INSERT INTO `AgencyImage` (`agency_id`,-118);
INSERT INTO `AgencyImage` (`agency_id`,-119);
INSERT INTO `AgencyImage` (`agency_id`,-120);
INSERT INTO `AgencyImage` (`agency_id`,-121);
INSERT INTO `AgencyImage` (`agency_id`,-122);
INSERT INTO `AgencyImage` (`agency_id`,-123);
INSERT INTO `AgencyImage` (`agency_id`,-124);
INSERT INTO `AgencyImage` (`agency_id`,-125);
INSERT INTO `AgencyImage` (`agency_id`,-126);
INSERT INTO `AgencyImage` (`agency_id`,-127);


ROLLBACK;
我想在提交代码之前验证脚本是否已运行。但是,第一次运行它并没有回滚任何东西。 我究竟做错了什么?     

解决方法

        是MyISAM表吗?如果是这样,如果要使用事务,则需要切换到InnoDB。如果您正在通过PHP之类的工具运行查询,请确保已关闭自动提交功能。