我想truncate table tableA
,但我必须禁用所有外键或放弃它们参照tableA
之前,我这样做。你能告诉我如何得到tableA
有外键的表名吗?如何获取我的表有外键的表的列表?
0
A
回答
1
好的,假设我想从SCOTT
模式中删除DEPT
表。我检查并发现它有一个名为PK_DEPT
的主键。然后我运行下面的查询(对表ALL_CONSTRAINTS
)并查找引用此表的模式和表。
请记住所有的字符串值(表名,约束类型等)在所有的目录表中都是大写的。当你编写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
一般的解决方案。
列出对表外键约束所有表和所有者:表名是类型P(主键)或ü(唯一约束)
select owner, table_name, constraint_name
from all_constraints
where r_constraint_name in (select constraint_name
from all_constraints
where table_name = :tablename
and constraint_type in ('P', 'U'));
+0
更通用的解决方案是同时写入针对ALL_CONSTRAINTS的select语句并包含ref所有者以及TABLE_NAME,因为参考约束可能跨越模式。 – mathguy
+0
正确mathguy,更改了sql以反映所有者并使用all_constraints –
相关问题
- 1. 获取表中的外键
- 2. 获取表中的外键
- 3. 如何查找表A的主键具有外键约束的表的列表?
- 4. 如何获取具有标识列的所有表的列表
- 5. 如何获取列表的列表?
- 6. 在ms-access中获取表的外键约束列表?
- 7. 从另一个表的外键获取记录列表
- 8. 如何获取oracle模式中的外部表的列表11g
- 9. 如何获得没有外键约束的列表?
- 10. 如何查找哪些表在我的表上有外键?
- 11. 带有外键列表的SQL列
- 12. Teradata:我如何获得表的主键和外键定义?
- 13. Azure ARM - 列表键 - 如何获取特定键的键值?
- 14. 如何获取我的数据库中的审计表列表?
- 15. 如何在Python中获取列表的所有排序列表
- 16. 如何合并列表以获取列表的列表?
- 17. 如何获取Lucene中所有搜索关键字的列表?
- 18. 获取所有从属表的所有外键的一个表到第n级
- 19. 如何获取表的外键指的是
- 20. 如何获取用“我喜欢”标签获取列表项的用户列表
- 21. 具有外键列表的SQLite字段
- 22. 如何从我的软件的所有打开的表单中获取列表?
- 23. 列出一张表的所有外键,同一表的多个外键
- 24. 如何获得我所有的实体映射表的列表?
- 25. 如何从关键字列表中获取新列表?
- 26. 获取具有唯一外键的表之间的关系的表名称
- 27. 我将如何创建可能的外键的下拉列表?
- 28. 有多个表的外键
- 29. 查看所有对表中某个列有外键的表?
- 30. 如何获取数据库表的子表的列表?
为http:// stackoverflow.com/questions/1729996/list-of-foreign-keys-and-the-tables-theign-keys在这里你应该找到答案 – Kacper