尽管提交或回滚,但更改是"已提交"在这两种情况下。
提交:
START TRANSACTION;
ALTER TABLE `bank` CHANGE COLUMN `bank_active` `bank_activated` BOOLEAN NOT NULL;
COMMIT;
回滚:
START TRANSACTION;
ALTER TABLE `bank` CHANGE COLUMN `bank_active` `bank_activated` BOOLEAN NOT NULL;
ROLLBACK;
需要构建一个自动更新程序,包括数据库的模式和数据更新,并希望将所有内容分组到一个事务中,以防万一出错,只需修复语句并再次运行。
是否可以在事务中回滚DDL语句?
谢谢
答案 0 :(得分:1)
BEGIN
与START TRANSACTION
相同。
phpmyadmin一次执行一个查询,除非您将批处理放在窗口中。试试吧。
(由于显式SET autocommit = 0
,START
与for (i = 0; i<argc; i++)
strcpy(people[i].name, argv[i+1]);
无关。
修改强>
由于“交易”确实有DDL声明,我的“回答”无关紧要。
无法回滚DDL:https://dev.mysql.com/doc/refman/5.7/en/cannot-roll-back.html