0
A
回答
2
沒有一個查詢,但你可以寫一個PL/SQL塊來做到這一點。您首先在USER_CONSTRAINTS(或ALL_CONSTRAINTS或DBA_CONSTRAINTS)上查詢,以查找引用給定主鍵的外鍵表。對於每種情況,您都會創建並執行一個動態SQL查詢,以查看是否有任何具有您感興趣的特定PK值的行。
使其適用於多列鍵將是一個額外的挑戰。
0
下面是它看起來如何在SQL Server:
DECLARE @keyColumn VARCHAR(100)
DECLARE @keyValue INT
SET @keyColumn = 'SiteID'
SET @keyValue = 400
SELECT 'SELECT ''' + TABLE_NAME + ''' AS TABLENAME, "' + @keyColumn
+ '" FROM "' + TABLE_NAME + '" WHERE "' + @keyColumn + '" = '
+ CONVERT(VARCHAR(100), @keyValue) + ' UNION ALL'
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU
WHERE KCU.COLUMN_NAME = @keyColumn
我知道Oracle有INFORMATION_SCHEMA
,這樣類似的事情應該工作。 我試着用SQLFiddle來適應它,但失敗了。也許這裏的其他人可以編輯我的答案,以便與Oracle合作。
這裏生成的SQL的樣子,在部分:
SELECT 'StockInventory' AS TABLENAME, "SiteID" FROM "StockInventory" WHERE "SiteID" = 400 UNION ALL
SELECT 'SiteDomains' AS TABLENAME, "SiteID" FROM "SiteDomains" WHERE "SiteID" = 400 UNION ALL
3
舉例單列PK。 PK約束名稱可以從DBA_CONSTRAINTS(USER_CONSTRAINTS,ALL_CONTRAINTS)派生。 該代碼可以擴展爲多列PK使用集合PK值
declare
p_pk_name varchar2(30):= '<PK constraint_name>';
p_pk_value varchar2(500):='<PK value>';
l_cnt int;
begin
for x in
(
select t.owner, t.table_name, cc.column_name
from dba_constraints c,
dba_tables t,
dba_cons_columns cc
where c.r_constraint_name = p_pk_name
and t.owner = c.owner
and t.table_name = c.table_name
and cc.owner = c.owner
and cc.constraint_name = c.constraint_name
)
loop
execute immediate 'select count(1) from '||x.owner||'.'||x.table_name|| ' where '||x.column_name||' = :p_pk_value and rownum <= 1' into l_cnt using p_pk_value ;
if l_cnt <> 0 then
dbms_output.put_line(x.owner||'.'||x.table_name);
end if;
end loop;
end;
相關問題
- 1. 連接兩個表沒有PK
- 2. 有沒有辦法從M2M關係中獲取* only *相關對象的PK?
- 3. 有沒有辦法找出哪個網頁與哪個查詢相關聯?
- 4. 有沒有辦法將一個類的特定值綁定到數據網格?
- 5. 沒有PK
- 6. 有沒有辦法找到一個自定義的mongo dbpath?
- 7. 根據這兩個表的PK創建一對一關係
- 8. NoReverseMatch(與PK有關):django
- 9. Cometd Seti-有沒有辦法找到與給定userId關聯的ServerSession列表?
- 10. Laravel:有沒有辦法讓任何給定字段名的模型與另一個表的關係?
- 11. 具有獨特的PK找到一個記錄表和重複FK
- 12. XCOPY:有沒有辦法只獲得一個特定的日期?
- 13. 有沒有辦法打印一個特定DIV的內容
- 14. 有沒有辦法選擇一個類的特定元素?
- 15. 有沒有辦法將一個樣式表關聯到Meteor中的一個特定模板?
- 16. 有沒有辦法將一個方法綁定到ListBox的DataTemplate?
- 17. 沒有標量PK特性的EF PK FK映射
- 18. JPA:有沒有辦法返回下availble的PK
- 19. 有沒有辦法知道有多少會話,打開一個特定的表
- 20. Context.SubmitChanges()沒有更新,儘管有一個PK
- 21. 有沒有辦法將一個綁定分配給一個值,而不是綁定XAML中的值?
- 22. PHP捲曲沒有辦法在這個特定的URL
- 23. 有沒有辦法創建一個指定.NET庫依賴關係的nuget包?
- 24. 有沒有辦法看到一個給定的CL提交到什麼流
- 25. 有沒有辦法指定一個「空的」C#lambda表達式?
- 26. 有沒有辦法找到哪個字體已被Phonegap渲染?
- 27. 有沒有辦法找出用戶連接到哪個App Store?
- 28. 沒有關鍵屬性的複合PK
- 29. 這個查詢是否保證我有'無競賽'的PK值?
- 30. mysql n:m關係:查找具有幾個特定關係的行