TRUNCATE TABLE和DELETE FROM区别
2013-03-25 10:35
274 查看
TRUNCATE TABLE 和不带 WHERE 的 DELETE 功能是一样的,都是删除表中的所有数据,不过 TRUNCATE TABLE 速度更快,占用的日志更少,这是因为 TRUNCATE TABLE 直接释放数据页并且在事务日志中也只记录数据页的释放,而 DELETE 是一行一行地删除,在事务日志中要记录每一条记录的删除。那么可不可以用 TRUNCATE TABLE 代替不带 WHERE 的 DELETE 呢?在以下情况是不行的:
1、要保留标识的情况下不能用 TRUNCATE TABLE,因为 TRUNCATE TABLE 会重置标识。
2、需要使用触发器的情况下不能使用 TRUNCATE TABLE ,它不会激发触发器。
3、对于由 FOREIGN KEY 约束引用的表(即主键所在的表,不是外键所在的表)不能使用 TRUNCATE TABLE。
4、对于参与了索引视图的表不能使用 TRUNCATE TABLE ,注意指索引视图,并非普通视图。
1、要保留标识的情况下不能用 TRUNCATE TABLE,因为 TRUNCATE TABLE 会重置标识。
2、需要使用触发器的情况下不能使用 TRUNCATE TABLE ,它不会激发触发器。
3、对于由 FOREIGN KEY 约束引用的表(即主键所在的表,不是外键所在的表)不能使用 TRUNCATE TABLE。
4、对于参与了索引视图的表不能使用 TRUNCATE TABLE ,注意指索引视图,并非普通视图。
相关文章推荐
- delete from 表名与truncate table 表名区别
- 【MySql】1.1 mysql中delete from和truncate table的区别
- Truncate table,Delete From table,与Drop table的区别
- MySql中delete from和 truncate table的区别
- delete from table和truncate table的区别
- truncate table 和delete * from的区别
- delete from和truncate table的区别
- delete from 表名与truncate table 表名区别
- delete from table & truncate table 的区别
- mysql中删除表记录delete from和truncate table的用法区别
- delete from和truncate table的区别
- SQL中truncate table和delete的区别 --转
- MySQL DELETE语句和TRUNCATE TABLE语句的区别
- TRUNCATE TABLE 与 DELETE的区别
- Mysql中truncate table和delete语句的区别
- TRUNCATE TABLE 与 DELETE在删除整个表的所有记录时的区别
- 浅析drop user与delete from mysql.user的区别
- delete from tablea & truncate table tablea 的区别??
- TRUNCATE TABLE 与Delete from
- MySQL DELETE语句和TRUNCATE TABLE语句的区别之处