TRUNCATE和DELETE的用法和区别

原创 2013年12月05日 23:51:32


TRUNCATE 命令用法
语法
TRUNCATE TABLE name

参数
name

是要截断的表的名称或要删除其全部行的表的名称。

注释
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。

TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。

对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。

TRUNCATE TABLE 不能用于参与了索引视图的表。

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

使用TRUNCATE语句进行删除的数据不能够回滚,而使用DELETE语句进行删除的数据可以进行回滚。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

oracle之delete和truncate命令用法和区别

delete删除表的数据,可以指定条件删除,如果事务未提交,则可以回滚; truncate删除表的全部数据,只保留表结构,事务自动提交,数据不可以回滚。 实例: 1. 新建一个表 create...

Oracle truncate table 与 delete tabel的区别

Oracle truncate table 与 delete tabel的区别  一、 1.delete产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的rol...

Oracle之delete与truncate区别?

实例对比Oracle中truncate和delete的区别 删除表中的数据的方法有delete,truncate, 它们都是删除表中的数据,而不能删除表结构,delete 可以删除整个表的数据也可...

drop,truncate与delete的区别

truncate和 delete只删除数据不删除表的结构(定义),truncate当表被清空后表和表的索引讲重新设置成初始大小,而delete则不能。 truncate 删除数据时不记录日志,其他都记...

SQL truncate 、delete与drop区别

相同点:1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。不同点: trunc...

详解Oracle DELETE和TRUNCATE 的区别

转自:http://www.cnblogs.com/simplefrog/archive/2012/07/30/2615169.html 语法 delete from aa  truncat...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)