MySQL中DDL不支持事务。
- 传统MySQL(5.7及以前版本):
- DDL操作不支持事务
- 执行DDL操作时会隐式提交当前会话的事务
- 无法回滚DDL操作
- MySQL 8.0版本:
- 引入了原子DDL特性(Atomic DDL)
- DDL操作变为原子性的,要么全部成功,要么全部失败
- 但这并不意味着DDL操作可以和普通DML操作放在同一个事务中
- DDL操作仍然会导致前面的事务隐式提交
举例说明:
START TRANSACTION;
INSERT INTO users (name) VALUES ('Alice');