Oracle 清空/删除数据库全部的表

背景

在测试数据库脚本可用性的时候,会新建一个用户然后执行脚本,测试成功之后,需要清空表。在百度上找到一篇写得很不错的文章,补充改善了一些内容。

执行步骤

注意:1、2、3、5步的脚本直接复制运行即可,无需改动任何地方;4步中需要修改成你使用的用户名

  1. 禁用当前用户下的全部约束
select 'alter table ' || table_name || ' disable constraint ' ||
constraint_name || ';'
from user_constraints
where constraint_type = 'R';

将记录中的语句复制出来,执行一遍
2. 生成清空所有表中的数据的语句

select 'truncate table '||table_name||';' from user_tables;

将记录中的语句复制出来,执行一遍

  1. 生成删除所有表的语句
select 'drop table '||table_name||';' as sqlscript from user_tables;

将记录中的语句复制出来,执行一遍

  1. 删除当前用户下所有的sequence
select sequence_owner, 'drop sequence' || sequence_name || ';' as sqlscript from dba_sequences where sequence_owner = '你的用户名'

将记录中的语句复制出来,执行一遍

  1. 启用数据库中所有表的约束
select 'alter table ' || table_name || ' enable constraint ' ||
constraint_name || ';'
from user_constraints
where constraint_type = 'R';

将记录中的语句复制出来,执行一遍

参考文章

直达链接:https://www.cnblogs.com/zouhong/p/15428142.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值