当前位置:Gxlcms > 数据库问题 > MySQL-8.0.x DDL 原子性

MySQL-8.0.x DDL 原子性

时间:2021-07-01 10:21:17 帮助过:11人阅读

select @@version; +-----------+ | @@version | +-----------+ | 5.6.44 | +-----------+ 1 row in set (0.00 sec) -- mysql-5.6.44 mysql> show tables; +------------------+ | Tables_in_tempdb | +------------------+ | t | +------------------+ 1 row in set (0.00 sec) -- 库中只有一个表 t mysql> drop table t,t_not_exists; ERROR 1051 (42S02): Unknown table tempdb.t_not_exists -- 尝试一次删除多张表 t & t_not_exists mysql> show tables; Empty set (0.00 sec) -- 虽然 t_not_exists 表并不存在,但是 t 还是被删除了

 

3、mysql-8.0.x DDL 操作原子性

mysql-8.0.x 提供了原子性支持,保证了 DDL 操作要么全部成功、要么全部失败。

mysql> select @@version;
+-----------+
| @@version |
+-----------+
| 8.0.16    |
+-----------+
1 row in set (0.00 sec)

mysql> show tables;
+------------------+
| Tables_in_tempdb |
+------------------+
| t                |
+------------------+
1 row in set (0.00 sec)

mysql> drop table t ,t_not_exists;
ERROR 1051 (42S02): Unknown table tempdb.t_not_exists
mysql> show tables;
+------------------+
| Tables_in_tempdb |
+------------------+
| t                |
+------------------+
1 row in set (0.00 sec) -- 因为对 t_not_exists 的操作失败了,所以整个 DDL 都回滚了;这也就解释了为什么 t 表还在。

 

4、mysql-5.7.x 也表现出了 DDL 原子性的支持

之所以说 5.7 是看起来像是支持 DDL 原子性,是因为在官方文档上并没有提到它支持,但是它表现了一些与 8.0 类似的行为能力。

mysql> select @@version;
+------------+
| @@version  |
+------------+
| 5.7.26-log |
+------------+
1 row in set (0.00 sec)

mysql> show tables;
+------------------+
| Tables_in_tempdb |
+------------------+
| t                |
+------------------+
1 row in set (0.00 sec)

mysql> drop table t ,t_not_exists;
ERROR 1051 (42S02): Unknown table tempdb.t,tempdb.t_not_exists 
-- 两者在错误信息上还是有一定的差别 
-- 8.0 会报 t_not_exists 表不存在
-- 5.7 会报 t 和 t_not_exists 都不存在

mysql> show tables;
+------------------+
| Tables_in_tempdb |
+------------------+
| t                |
+------------------+
1 row in set (0.00 sec)
            

 

引用自:https://www.sqlpy.com/blogs/books/1/chapters/12/articles/52

 

---

 

MySQL-8.0.x DDL 原子性

标签:nbsp   empty   解释   book   drop   code   weight   成功   除了   

人气教程排行