truncate和delete区别与联系

truncate和delete区别与联系

delete from `表名`
truncate `表名`
  1. 都能删除全部数据但不会删除表结构
  2. truncate重新设置自增列,计数器归0
  3. truncate不会影响事务

使用方面

  • delete 写日志,大量删除记录时比较慢,不是真的从数据库里面删除数据,只是给这些数据加个unused的标签,因此他是可恢复的
  • truncate 不写日志,比较快,是真正的删除数据,因此不可恢复.删了就没了

但是有一种情况你不能用 truncate,

如果你的table里面有自增列,并且这个列的值被其他表的记录引用(比例历史记录表),那就不能用 truncate,
因为 truncate 还会把自增列的当前值也重置。

posted @ 2022-02-21 20:40  一刹流云散  阅读(115)  评论(0编辑  收藏  举报