码迷,mamicode.com
首页 > 其他好文 > 详细

delete、truncate和drop的区别

时间:2019-02-22 12:05:45      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:日志   truncate   key   操作   语句   行操作   等保   针对   从表   

1、truncate是DDL,会隐式提交,所以,不能回滚,不会触发触发器,当表被TRUNCATE后,这个表和索引所占用的空间会恢复到初始大小。

  ps:TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变

2、delete语句执行的过程是每次从表中删除一行数据,并且会将改行的删除操作作为事务记录在日志中,以便进行回滚操作。但是DELETE操作不会减少表或索引所占用的空间。

  ps:DELETE可根据条件删除表中满足条件的数据,如果不指定where子句,那么删除表中所有记录。

3、drop语句将表所占用的空间全释放掉( 删除整个表(结构和数据)

  ps:如果要删除表定义及其数据,请使用 DROP TABLE 语句

使用限制

1、但是truncate只针对table进行操作,delete可以对table也可以对view进行操作。

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

3、DROP语句删除表结构及所有数据,并将表所占用的空间全部释放。

 

delete、truncate和drop的区别

标签:日志   truncate   key   操作   语句   行操作   等保   针对   从表   

原文地址:https://www.cnblogs.com/sqldata/p/10417324.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!