在java中我们也经常接触到原子性的概念,在mysql8.0中也引入了原子操作的概念—即要么操作成功,要么就回滚
在MySQL 8.0版本中,InnoDB表的DDL支持事务完整性,即DDL操作要么成功要么回滚。DDL操作回滚日志写入到data dictionary数据字典表mysql.innodb_ddl_log(该表是隐藏的表,通过show tables无法看到)中,用于回滚操作。通过设置参数,可将DDL操作日志打印输出到MySQL错误日志中。
案例演示-------
现在有几张表------
执行删除操作------
mysql> drop table testnum1,test;
ERROR 1051 (42S02): Unknown table 'gavin.test'
mysql> show tables;
+-----------------+
| Tables_in_gavin |
+-----------------+
| bonus |
| dept |
| emp |
| emp2 |
| salgrade |
| testnum |
| testnum1 |
+-----------------+
7 rows in set (0.00 sec)
在mysql8.0之前------
mysql> drop table testnum1,test;
ERROR 1051 (42S02): Unknown table 'gavin.test'
mysql> show tables;
+-----------------+
| Tables_in_gavin |
+-----------------+
| bonus |
| dept |
| emp |
| emp2 |
| salgrade |
| testnum |
+-----------------+
7 rows in set (0.00 sec)
虽然删除的时候出现了错误但是仍然将testnum1 给删除了;