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关系:查找具有几个特定关系的行