我想要truncate table tableA
,但我必须先禁用所有外键或删除它们,然后在执行此操作之前将其引用到tableA
。你能告诉我如何获得具有tableA
外键的表的名称吗?
答案 0 :(得分:1)
好的,假设我想从DEPT
架构中删除SCOTT
表。我检查并发现它有一个名为PK_DEPT
的主键。然后我运行下面的查询(针对表ALL_CONSTRAINTS
)并找到引用该表的模式和表。
请记住,所有目录表中的所有字符串值(表名,约束类型等)始终为UPPER CASE。在编写WHERE条件时,这很重要。
select owner, table_name
from all_constraints
where constraint_type = 'R' and r_owner = 'SCOTT' and r_constraint_name = 'PK_DEPT';
OWNER TABLE_NAME
-------------------- --------------------
SCOTT EMP
1 row selected.
答案 1 :(得分:1)
一般解决方案。
列出具有 P (主键)或 U 类型的表:tablename 的外键约束的所有表和所有者(唯一约束)
_inherits3.default(SpecRunner, _File);