- sql自学笔记(二十二)——MySQL8.0版本的新特性(十二)
- sql自学笔记(十二)——MySQL8.0版本的新特性(二)
- sql自学笔记(十一)——MySQL8.0版本的新特性(一)
- sql自学笔记(十七)——MySQL8.0版本的新特性(七)
- sql自学笔记(十九)——MySQL8.0版本的新特性(九)
- sql自学笔记(十三)——MySQL8.0版本的新特性(三)
- sql自学笔记(十四)——MySQL8.0版本的新特性(四)
- sql自学笔记(十五)——MySQL8.0版本的新特性(五)
- sql自学笔记(十六)——MySQL8.0版本的新特性(六)
- sql自学笔记(十八)——MySQL8.0版本的新特性(八)
原子DDL操作
- MySQL8.0开始显示支持原子DDL操作,其中与表相关的原子DDL只支持InnDB存储引擎。
- 一个原子DDL操作内容包括:更新数据字典,存储引擎层的操作,在binlog中记录DDL操作。
- 支持与表相关的DDL:数据库、表空间、表、索引的CREATE,ALTSE,DROP以及TRUNCATE TABLE。
- 支持与表相关的DDL:存储程序,触发器,视图,UDF的CREATE,DROP以及ALTER语句。
- 支持其他DDL:存储程序,触发器,视图,UDF的CREATE,DROP以及ALTER语句。
- 支持账户管理相关的DDL:用户和角色的CREATE,ALTER,DROP以及适用的RENAME,以及GRANT和REVOKE语句。
我们来看一下5.7和8.0版本中这些的差异
在5.7中
先创建一张t1表,并查看一下
create table t1 (c1 int);
show tables;
再来删除这个表
drop table t1,t2;
show tables;
我们可以看到在5.7当中虽然有一部分是错误的,但是有一部分是操作成功的。
在8.0中
create table t1(c1 int);
show tables;
drop tables;
我们可以看到它不会只成功一部分,它会是一个整体要么都成功,要么都失败。
我们还可以
drop table if exists t1,t2;
运行之前会有一个判断,即使没有t2表,它只会出现一个警告而不会出现错误。
show tables;
有图可知,我们可以看到t1表被删除。
网友评论