MySQL事务与模式修改语句(DDL)?

时间:2015-06-23 21:12:43

标签: mysql transactions innodb database-schema ddl

尽管提交或回滚,但更改是"已提交"在这两种情况下。

提交:

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语句?

谢谢

1 个答案:

答案 0 :(得分:1)

在某些情况下,

BEGINSTART TRANSACTION相同。

phpmyadmin一次执行一个查询,除非您将批处理放在窗口中。试试吧。

(由于显式SET autocommit = 0STARTfor (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