#DCL 中COMMIT和ROLLBACK的使用
#COMMIT:提交数据.一旦执行,则数据就永远的保存在数据库中,意味着数据不能回滚
#ROLLBACK:一旦执行,则可以实现数据的回滚.回滚到最近的一次COMMIT之后
#对比TRUNCATE TABLE 和DELETE FROM
#相同点:都可以实现对表中所有数据的删除,同时保留表结构
#不同点:TRUNCATE TABLE:一旦执行,表数据全部清除同时不能回滚
# DELETE FROM :一旦执行,表数据可以全部清除(不带WHERE),同时数据可以实现回滚
/*
DDL 和 DML 说明
DDL:一旦执行就不可回滚。指令SET autocommit = FALSE对DDL失效
DML:默认情况下,一旦执行也不能回滚。但是,如果在执行DML之前,执行了
SET autocommit = FALSE ,则执行的DML操作就可以实现回滚。
*/
#DELETE FROM
#1)
COMMIT;
#2)
SELECT *
FROM myempl3;
#3)
SET autocommit = FALSE ;
#4)
DELETE FROM myempl3;
#5)
SELECT *
FROM myempl3;
#6)
ROLLBACK;
#7)
SELECT *
FROM myempl3;
#TRUNCATE TABLE
#1)
COMMIT;
#2)
SELECT *
FROM myempl3;
#3)
SET autocommit = FALSE ;
#4)
TRUNCATE TABLE myempl3;
#5)
SELECT *
FROM myempl3;
#6)
ROLLBACK;
#7)
SELECT *
FROM myempl3;
#测试MySQL8.0的新特性:DDL的原子化
CREATE DATABASE mytest;
USE mytest;
CREATE TABLE book1(
book_id INT,
book_name VARCHAR(255)
);
SHOW TABLES;
DROP TABLE book1,book2;
SHOW TABLES;
DCL 中COMMIT和ROLLBACK的使用
于 2022-04-14 19:47:44 首次发布