oracle中truncate和delete命令有何区别,Oracle数据库知识点分享:truncate和delete区别...

原标题:Oracle数据库知识点分享:truncate和delete区别

岳彩波,擅长Oracle、Mysql,有丰富的数据库维护、调优经验,曾服务于金融行业,目前专注于第三方支付领域。

一、知识点简介

Truncate和delete在实际应用中都是使用比较频繁的,他们都是删除表数据的语句,在这里我们整理一下两者之间的区别,以方便大家在应用中选择。

二、知识点内容

1、 语句类型

Truncate属于SQL DDL语言。

Delete属于SQL DML语言。

2、 commit

truncate执行完成自动提交。

Delete执行完成需要手工提交。

3、 回滚

Truncate不能rollback。

Delete可以rollback。

4、 存储空间

Truncate可以释放存储空间。

Delete不能释放存储空间。

5、 高水位

Truncate执行完毕降低高水位。

Delete不能降低高水位。

6、 日志的产生

Truncate执行过程中产生很少的日志。

Delete执行过程中会产生大量的日志。

7、 回退

Truncate执行的时候很少的回退。

Delete执行的时候会有大量的回退。

8、 是否可以加条件

Truncate不能加条件删除数据。

Delete可以加条件删除。

9、 级联删除

不能truncate一个带有enable外键的表,会报错ORA-02266。

可以delete一个带有enable外键的表。

10、 初始大小

Truncate保留建表的初始大小。

Delete保留表的现有大小。

三、实验过程

以上的十条总结是根据官方文档和平时使用过程中的一些经验总结。

四 、权威资料

官方文档

五、总结

Truncate table table_name;和delete table_name;

这两个语句在使用的时候要根据具体的需求来定;

delete也可以释放少量空间,但是不能降低高水位,上边第四项中释放和不释放空间都是相对来说的。

在这里还有一个相关的小知识点,默认情况下oracle10G的空表会分配存储空间,oracle11G的空表不会分配空间。

点击阅读原文可以进入社区Oracle主题,还有更多文章、资料及相关问答。返回搜狐,查看更多

责任编辑:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值