我有一个包含以下表格EMP,DEPT,CLIENT和PURCHASE的数据库。我使用的是Oracle 11g快递版
我已经执行了以下SQL语句来查找表上的约束:EMP
SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'EMP'
有没有办法找出目前在一个语句中跨多个表对此数据库强制执行哪些约束?
E.g。 EMP和客户等等。
答案 0 :(得分:1)
您可以尝试类似
的内容SELECT *
FROM USER_CONSTRAINTS
ORDER BY TABLE_NAME,
CONSTRAINT_NAME
将允许您浏览数据库中的所有约束。如果你有一个你感兴趣的表的子集,你可以抛出WHERE子句,如
SELECT *
FROM USER_CONSTRAINTS
WHERE TABLE_NAME IN ('EMP',
'CLIENT',
'OTHER_TABLE',
'OTHER_TABLE2',
'YET_ANOTHER_TABLE')
ORDER BY TABLE_NAME,
CONSTRAINT_NAME
或
...
WHERE TABLE_NAME = 'EMP' OR
TABLE_NAME = 'CLIENT' OR
TABLE_NAME = 'OTHER_TABLE' OR
TABLE_NAME = 'OTHER_TABLE2' OR
TABLE_NAME = 'YET_ANOTHER_TABLE'
...
上面的两个WHERE子句是等价的 - 第一个是更紧凑的。
分享并享受。