删除数据
MySQL删除数据的方式有两种,一种为delete,一种为truncate
delete删除数据
delete from 表名 where 条件
truncate删除数据
truncate table 表名;
两者的区别
-
delete可以加where条件进行删除,truncate不可以,只能删除全表数据 -
delete删除不会删除自增长字段,再次新增字段时从断点继续自增,truncate删除数据之后自增长字段从1开始 -
delete删除会返回删除的条数,truncate删除不会返回 -
delete删除可以回滚,truncate删除不可以回滚 -
delete删除可以触发trigger,truncate不会 -
truncate比delete速度快,因为delete每删除一条数据需要在事务日志中为删除的每行数据进行记录,而truncate则通过释放数据页来删除数据,且只在事务日志中记录页的释放
注意:删除数据时使用delete即可,尤其是没有数据备份的情况下