DCL:数据控制语言;
1.COMMIT:
-
指的是
提交数据
,一旦执行COMMIT,那么数据就被永久地保存在数据库中—那么也就
不可以回滚
;
2.ROLLBACK:
-
指的是
回滚数据
,一旦执行ROLLBACK,那么就可以实现数据的回滚(但是并不一定成功)—回滚到最近的一次
COMMIT
之
后
。
由此,对比一下
TRUNCATE TABLE(DDL)
和
DELETE FROM(DML)
:
-
相同点:都能删除表中的所有数据,并且保留表结构;
-
不同点:
TRUNCATE TABLE
—>一旦执行此操作,表数据就
全部
清除,并且
数据不可以回滚
(因为操作完后自动操作了commit)
;
DELETE FROM
—>一旦执行此操作,可以清楚
全部
数据(也可清楚
部分
,带WHERE),
可以实现回滚(也可以不实现)
;
-
DDL—>一旦执行就不可以回滚;DML—>
默认情况
是一旦执行就
不可以回滚
,但可以通过在
执行之前
修改参数(
SET autocommit=FALSE
)使得可以回滚;
-
在实际操作中,TRUNCATE TABLE速度比DELETE 快,占用资源少,但是有可能造成事故,所以不建议使用TRUNCATE;
版权声明:本文为m0_65300193原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。