数据库中的drop、truncate、 delete的区别()

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

  • 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 不记录在日志中,所以它不能激活触发器。

————————

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

  • 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 不记录在日志中,所以它不能激活触发器。