0%

删除数据

删除数据

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

delete删除数据

1
delete from 表名 where 条件

truncate删除数据

1
truncate table 表名;

两者的区别

  • delete可以加where条件进行删除,truncate不可以,只能删除全表数据
  • delete删除不会删除自增长记录,再次新增时自增长字段从断点继续自增,truncate删除数据之后自增长记录从1开始
  • delete删除会返回删除的条数,truncate删除不会返回
  • delete删除可以回滚,truncate删除不可以回滚
  • delete删除可以触发trigger,truncate不会
  • truncate比delete速度快,因为delete每删除一条数据需要在事务日志中为删除的每行数据进行记录,而truncate则通过释放数据页来删除数据,且只在事务日志中记录页的释放
  • 使用truncate表和索引所占用的空间会恢复到初始大小,而delete操作不会减少表和索引所占用的空间

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

欢迎关注我的其它发布渠道