在MYSQL中,delete 、truncate、drop区别介绍

原文连接

    https://www.cnblogs.com/zhizhao/p/7825469.html

# ========================================

@ sunRainAmazing


语法格式

delete from 表名  where  where_condition

truncate table  表名

drop table 表名

 

在速度上,一般来说,drop> truncate > delete


注意事项

1、TRUNCATE 只能对TABLE

2、DELETE可以是tableview

3、TRUNCATE DELETE只删除数据, DROP则删除整个表(结构和数据)。

4、TRUNCATE 对于外键(foreignkey )约束引用的表,不能使用 truncate table,而应使用不带 where 子句的 delete 语句。

5、TRUNCATE DDL,会隐式提交,所以,不能回滚,不会触发触发器。


Truncate

Truncate table 表名 速度快,而且效率高,

因为

truncate table 在功能上与不带 WHERE 子句的 DELETE 语句相同:

二者均删除表中的全部行。

 TRUNCATE TABLE  DELETE 速度快,且使用的系统和事务日志资源少。

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。

TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 









猜你喜欢

转载自blog.csdn.net/sunrainamazing/article/details/80342355