奇怪的BUG增加了,快速删除外键关联的表

前提

在外实习的打工人,今天要清空一张表A的数据,但是表A的主键URID被很多很多表当作外键引用了,不能直接删除数据,要先把引用他的数据删掉。
并且这个数据库里面的表很多很多,我也不知道A表的关联表有哪些。

那就问问度娘吧

很容易,就得到了两种方案。
1.查出表的关联表,然后逐个删除

SElect * from user_constraints where R_CONSTRAINT_NAME in
(select constraint_name from user_constraints where TABLE_NAME='要查找的表')

2.禁用和启用表的外键(这是生成执行脚本,把select查出来的结果复制上来执行就可以了)

select 'alter table ' || table_name || ' disable constraint ' || constraint_name || ';'from user_constraintswhere constraint_type = 'R';

select 'alter table ' || table_name || ' drop constraint ' || constraint_name || ';'from user_constraintswhere constraint_type = 'R';

事实上,这两种方法都是可以的,没有问题,那么奇怪的BUG在哪呢?

数据库软件

要管理数据库,咱们一般都会用Navicat和PLSQL,然后Navicat界面是这个样子的
在这里插入图片描述
PLSQL是长这个样子的
在这里插入图片描述
嗯,于是我毫不犹豫的就用了Navicat。

奇怪的BUG出现啦

当我把查找关联表的语句执行的时候,是这样的
Navicat里面
在这里插入图片描述
在这里插入图片描述
WTF???怎么什么东西都没有查出来?我这关联的那么多表的信息呢?在这里插入图片描述
那我们去PLSQL里面执行一下看看
在这里插入图片描述
嗯,全都查出来了,姜还是老的辣

总结

虽然PLSQL简约的线条和简陋的界面仿佛让我回到了10年前,但是在Oracle的查询上面还是有一手的。
但是我还是选择Navicat!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值