我有一个非常大的Oracle数据库,有很多很多表和数百万行.我需要删除其中一个,但要确保删除它不会 destruct 任何其他指向它作为外键记录的依赖行.有没有办法获得指向此行的所有其他记录(或者至少是表架构)的列表?我知道我可以自己试着删除它,然后捕获异常,但我不会自己运行脚本,需要它第一次运行干净.
我有Oracle的SQL Developer和AllRoundAutomations的PL/SQL Developer工具供我使用.
提前谢谢!
我有一个非常大的Oracle数据库,有很多很多表和数百万行.我需要删除其中一个,但要确保删除它不会 destruct 任何其他指向它作为外键记录的依赖行.有没有办法获得指向此行的所有其他记录(或者至少是表架构)的列表?我知道我可以自己试着删除它,然后捕获异常,但我不会自己运行脚本,需要它第一次运行干净.
我有Oracle的SQL Developer和AllRoundAutomations的PL/SQL Developer工具供我使用.
提前谢谢!
我总是看着起跑台的外键,然后往回走.DB工具通常有一个依赖项或约束 node .我知道PL/SQL Developer有办法查看FK,但是我已经有一段时间没有使用它了,所以我无法解释它……
只需将XXXXXXXXXX替换为表名.
/* The following query lists all relationships */
select
a.owner||'.'||a.table_name "Referenced Table"
,b.owner||'.'||b.table_name "Referenced by"
,b.constraint_name "Foreign Key"
from all_constraints a, all_constraints b
where
b.constraint_type = 'R'
and a.constraint_name = b.r_constraint_name
and b.table_name='XXXXXXXXXXXX' -- Table name
order by a.owner||'.'||a.table_name