截断表

03-12 1122阅读

oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645

截断表

事务处理本身是保护数据完整性的一个手段,但是在使用事务处理的过程之中需要注意一点

在用户更新数据后还未进行事务提交时,如果发生了 DDL 操作,所有的事务都会自动提交

假如说现在有一张表中的所有数据不再需要了,那么首先想到的是将数据表中的全部数据使用DELETE 删除

在这样的删除过程中就会出现以下情况

由于事务的控制,所以导致数据不会立刻被删除。同时这些数据所占用的资源不会立刻消失。也就是说在一段时间之内,此数据是依然会存在的。但是如果这个时候执行了一个表创建之类的数据定义操作,该事务会被自动提交,即这时数据表内容会自动删除,即使使用 rollback也无法恢复

所以如果使用 delete删除,那么就有可能出现资源被占用的情况

为此,Oracle 提供了一种称为截断表的概念,如果表被截断,数据表所占用的资源将全部释放,同时将无法使用事务进行恢复

truncate table 表名称;

 截断 myemp 表

SQL> truncate table myemp;
表被截断。

 上面的代码实现数据表 myemp 中所有记录被删除

这个时候才属于彻底的资源释放。也就是说即使这时再使用 rollback也无法恢复数据

截断表

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]