truncate 和 delete
删除表信息的方式有两种:
代码语言:javascript复制truncate table table_name;
delete * from table_name;
truncate
操作中的 table 可以省略,delete
操作中的 *
可以省略。
truncate
是清空,delete
是删除。
truncate
和 delete
清空表数据的区别:
truncate
是整体删除(速度较快),delete
是逐条删除(速度较慢);truncate
不写服务器 log,delete
写服务器 log,也就是truncate
效率比delete
高的原因;truncate
不激活 trigger(触发器),但是会重置 Identity(标识列、自增字段),相当于自增列会被置为初始值,又重新从 1 开始记录,而不是接着原来的 ID 数。而delete
删除以后,identity 依旧是接着被删除的最近的那一条记录 ID 加 1 后进行记录。如果只需删除表中的部分记录,只能使用 DELETE 语句配合 where 条件;