1.名词解释

    a.SQL:结构化查询语言

    b.ANSI:U.S.国家典型协会

    c.数据库正是数码群集

   MySQL
8.0起初帮忙原子数据定义语言(DDL)语句。此功效称为原子DDL。原子DDL语句将与DDL操作关联的数码字典更新,存款和储蓄引擎操作和二进制日志写入组合到单个原子事务中。纵然服务器在操作期间暂停,也会付出业务,并将适用的转移保留到数量字典,存款和储蓄引擎和二进制日志,大概回滚事务。

use master

2.SQL指令的门类

    2.1 数据定义语言

CREATE TABLE
ALTER TABLE
DROP TABLE
CREATE INDEX
ALTER INDEX
DRROP INDEX
CREATE VIEW
DROP VIEW

    2.2 数据操作语言

INSERT
DELETE
UPDATE

    2.3 数据查询语言

SLECT

    2.4 数据调节语言

ALTER PASSWORD
GRANT
REVOKE
CREATE SYNONYM (同义字)

    2.5 数据管理命令

START AUDIT
STOP AUDIT

    5.6 事务调节命令

COMMIT (保存数据库事务)
ROLLBACK (撤销数据库事务)
SAVEPOINT (创建标记点用于回退)
SET TRANSACTION (设置事务的名称)

 

 

3.表的组合

    关系型数据库由相互关系的表组成,表之间通过首要字互相关系

    a. 字段(属性)

    b. 记录(一行数据)

    c. 列(包蕴特定字段的成套新闻)

    d. 主键 区分表里的每一条数据

    e. NULL

   通过在MySQL 8.0中引入MySQL数据字典,能够完成Atomic
DDL。在最早的MySQL版本中,元数据存款和储蓄在元数据文件,非事务性表和存款和储蓄引擎特定的字典中,那亟需中间提交。MySQL数据字典提供的集英式事务元数据存款和储蓄解决了这一障碍,使得将DDL语句操作结合为原子事务成为或许。

alter database mfv408_Tift1 add log file

 

(

合俄文书档案:

name=mfv408_Tift1_log,filename=’C:\_DISK\data1\mfv408_Tift1_log2.ldf’,

    SIZE = 1024MB,

 

    MAXSIZE = UNLIMITED,

 

    FILEGROWTH = 10%

1、支持的DDL语句

)

 原子DDL功效帮忙表和非表DDL语句。与表相关的DDL操作要求仓库储存引擎扶助,而非表DDL操作则无需。近来,唯有InnoDB存储引擎帮忙原子DDL。

go

 

 

①:受援救的表DDL语句满含 CREATE,ALTE本田UR-V和
DROP对数据库,表,表和目录,以及讲话 TRUNCATE TABLE证明。

 

②:补助的非表DDL语句包涵:

DBCC SHRINKFILE(‘mfv408_Tift1_log’,10)

   CREATE和DROP 语句,以及(纵然适用)ALTECRUISER存款和储蓄程序,触发器,视图和顾客定义函数(UDF)的言辞。

 

   账户管理语句: CREATE,ALTE汉兰达, DROP,,假若适用,
RENAME报表顾客和剧中人物,以及GRANT 和REVOKE报表。

USE master;

 

GO

1.1、原子DDL效用不协理以下语句:

ALTER DATABASE mfv408_Tift1 

①:涉及除存款和储蓄引擎之外的存储引擎的与表相关的DDL语句InnoDB。

REMOVE FILE mfv408_Tift1_log;

②:INSTALL PLUGIN和 UNINSTALL PLUGIN 陈述。

GO

③:INSTALL COMPONENT和 UNINSTALL COMPONENT 陈述。

 

④:CREATE SERVER, ALTER SERVER和 DROP SERVER语句。

 

2、原子DDL特性:

①:元数据更新,二进制日志写入和积存引擎操作(借使适用)将统一为单个事务。

②:在DDL操作期间,SQL层未有中间提交。

③:在适用的场合下:

   
数据字典,程序,事件和UDF高速缓存的图景与DDL操作的情况同样,那意味更新的高峰速缓存以反映DDL操作是马到成功做到或然回滚。

   
DDL操作中提到的存款和储蓄引擎方法不进行中间提交,何况存款和储蓄引擎将自个儿注册为DDL事务的一有的。

    存款和储蓄引擎支持DDL操作的重做和回滚,那在DDL操作的 Post-DDL阶段实行。

④:DDL操作的可见行为是原子的,那会转移某个DDL语句的行为

 

注意:

 
原子或别的DDL语句隐式停止前段时间对话中居于活动状态的任何事情,就临近你COMMIT在进行语句以前完成了一样。那代表DDL语句不能够在另壹个业务中,在业务调整语句中推行START TRANSACTION … COMMIT,大概与平等业务中的其余语句结合使用。

 

3、DDL语句行为的转换

3.1、DROP TABLE:

 假诺具备命名表都施用原子DDL扶助的存款和储蓄引擎,则操作是一丝一毫原子的。该语句要么成功删除全部表,要么回滚。

DROP
TABLE如若命名表不真实,何况未举办其它改变(无论存储引擎怎么样),则会倒闭并彰显错误。如下所示:

 

mysql> CREATE TABLE t1 (c1 INT);

mysql> DROP TABLE t1, t2;

ERROR 1051 (42S02): Unknown table ‘test.t2’

mysql> SHOW TABLES;

+—————-+

| Tables_in_test |

发表评论

电子邮件地址不会被公开。 必填项已用*标注