【ⓂMySQL】数据库中的drop、truncate、 delete的区别

  • drop直接删掉表。
  • truncate删除表中数据,再插入时自增长id又从1开始。
  • delete删除表中数据,可以加where字句。

delete语句会记录日志以便进行回滚操作;truncate table不会记录日志,在删除的过程中不会激活与表有关的删除触发器,执行速度快。

当表被truncate后,这个表和索引所占用的空间会恢复到初始大小,而delete操作不会减少表或索引所占用的空间。drop语句将表所占用的空间全释放掉。

truncate 只能对table;delete可以是table和view。

truncate 和delete只删除数据,而drop则删除整个表(结构和数据)。

delete语句为DML;truncate、drop是DLL

对于有FOREIGN KEY 约束引用的表,不能使用 truncate table,而应使用不带 where子句的 delete语句。由于 truncate table不记录在日志中,所以它不能激活触发器。

posted @ 2023-03-19 09:24  残城碎梦  阅读(41)  评论(0编辑  收藏  举报