delete table 和 truncate table 详解

本文对比了SQL中的delete和truncate语句。详细介绍了两者在删除表数据时的不同之处,包括执行速度、系统资源使用及对外键约束的影响。此外还解释了它们在事务日志中的记录方式。

delete table 和 truncate table

 

使用delete语句删除数据的一般语法格式:

 

delete [from] {table_name、view_name} [where<search_condition>]

 

将表中的所有行数据删除,执行完后,发现表中的数据都删除了,但是表的结构什么都还在。

 

 

truncate

 

truncate table语句将删除指定表中所有数据,因此也称其为清除表数据语句,一般格式如下

 

truncate table name

 

由于truncate语句将删除表中的所有数据,且无法恢复。

 

TRUNCATE TABLE执行速度比DELETE块,且使用的系统和事务日志资源少。DELETE语句每次删除一行,

 

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

 

除数据,并且只在事务日志中记录页的释放。

 

对于有外键约束引用的表,不能使用TRUNCATE TABLE删除数据,而应该使用不带WHERE子句的DELETE

 

语句。另外TRUNCATE TABLE也不能用于参与了索引视图的表。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值