[MySql] DELETE和TRUNCATE的异同点

不同点

  1. DELETE语句后面可以跟WHERE子句,可以只删除满足条件的部分记录,TRUNCATE只能删除表中的所有数据.

  2. 使用TRUNCATE删除表中的数据后,再次添加时,自动增加的字段默认初始值从 1 开始,用DELETE语句删除所有数据时,再次向表中添加数据时,自动增加的字段则是为删除时该字段的最大值加1

  3. DELETE语句是DML(数据库操作语言),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。TRUNCATE是DML(数据库定义语言),操作立即生效,操作不触发 trigger

  4. TRUNCATE的速度大于DELETE

相同点

  1. DELETE和TRUNCATE只删除数据而不删除表的结构

你可能感兴趣的:(SQL)