我有一个非常大的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

Database相关问答推荐

使用 noSQL 和 MongoDB 在数据库中存储任何类型文件的最佳方法是什么

在保持抽象的同时将格式化文本存储在数据库中

创建一个spell check,判断具有合理运行时间的数据库

有没有办法使用 JPA 注释和 Hibernate 动态 Select @GeneratedValue 策略?

如何打印出 sequelize 实例的表名?

为什么面向对象的数据库还没有成功?

如何避免使用 LINQ-To-SQL 的内存泄漏?

如何在 2 个 MySQL 数据库之间传输数据?

SQL查询7天前的数据

本地数据库,我需要一些例子

如何在数据库中搜索和替换字符串的所有实例?

在 Heroku 生产站点上清除 Rails 应用程序数据库

存储并仍然索引加密客户数据的最佳方式是什么?

C++ SQL 数据库库比较

MongoDB中的数据库数据大小

Redis Pub/Sub 和 Redis Stream 之间的主要区别是什么?

XML、CSV 或数据库格式的 ICD-9 代码列表

您是否应该将自引用表列设为外键?

为什么 OODBMS 不像 RDBMS 那样普遍?

位图索引有何帮助?