首页 > 数据库 > MySQL > 正文

mysql中TRUNCATE AND DELETE有啥用

2024-07-24 12:34:13
字体:
来源:转载
供稿:网友
  这篇文章主要介绍了mysql中TRUNCATE AND DELETE有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
 
  TRUNCATE TABLE 和不带 WHERE 的 DELETE 功能是一样的,都是删除表中的所有数据,不过 TRUNCATE TABLE 速度更快,占用的日志更少,这是因为 TRUNCATE TABLE 直接释放数据页并且在事务日志中也只记录数据页的释放,而 DELETE 是一行一行地删除,在事务日志中要记录每一条记录的删除。
 
  那么可不可以用 TRUNCATE TABLE 代替不带 WHERE 的 DELETE 呢?在以下情况是不行的:
  1、要保留标识的情况下不能用 TRUNCATE TABLE,因为 TRUNCATE TABLE 会重置标识。
  2、需要使用触发器的情况下不能使用 TRUNCATE TABLE ,它不会激发触发器。
  3、对于由 FOREIGN KEY 约束引用的表(即主键所在的表,不是外键所在的表)不能使用 TRUNCATE TABLE。
  4、对于参与了索引视图的表不能使用 TRUNCATE TABLE ,注意指索引视图,并非普通视图。
 
  感谢你能够认真阅读完这篇文章,希望小编分享的“mysql中TRUNCATE AND DELETE有什么用”这篇文章对大家有帮助。

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表