我想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