0%

删除数据

删除数据

MySQL删除数据的方式有两种,一种为delete,一种为truncate

delete删除数据

1
delete from table 表名 where 条件

truncate删除数据

1
truncate table 表名;

两者的区别

  • delete可以加where条件进行删除,truncate不可以,只能删除全表数据
  • delete删除不会删除自增长字段,再次新增字段时从断点继续自增,truncate删除数据之后自增长字段从1开始
  • delete删除会返回删除的条数,truncate删除不会返回
  • delete删除可以回滚,truncate删除不可以回滚
  • delete删除可以触发trigger,truncate不会
  • truncate比delete速度快,因为delete每删除一条数据需要在事务日志中为删除的每行数据进行记录,而truncate则通过释放数据页来删除数据,且只在事务日志中记录页的释放

注意:删除数据时使用delete即可,尤其是没有数据备份的情况下