数据库delete语句和TRUNCATE
delete语句:
delete from MyTableName where id = 6
truncate语句:
truncate table MyTableName
注意:区别于DELETE命令
-
相同 : 都能删除数据 , 不删除表结构 , 但TRUNCATE速度更快
-
不同 :
-
使用TRUNCATE TABLE 重新设置AUTO_INCREMENT计数器
-
使用TRUNCATE TABLE不会对事务有影响
-
-- 删除表数据(不带where条件的delete)
DELETE FROM test;
-- 结论:如不指定Where则删除该表的所有列数据,自增当前值依然从原来基础上进行,会记录日志.
-- 删除表数据(truncate)
TRUNCATE TABLE test;
-- 结论:truncate删除数据,自增当前值会恢复到初始值重新开始;不会记录日志.
ps:
在SQL SERVER 2008里,delete from ... where id = ... 删除一个数据后,再insert into一个数据,id会在原来的基础上自增,但是插入的数据是在删除的数据原来的位置那里。
例:
id name
1 Mike
2 Xiaoming
3 Xiaohong
4 Sarah
delete from ... where id = 2 之后,insert into ...
表会变成
id name
1 Mike
5 ...
3 Xiaohong
4 Sarah