0

我有一个包含下表 EMP、DEPT、CLIENT 和 PURCHASE 的数据库。我使用的是 Oracle 11g 速成版

我已经执行了以下 SQL 语句来找出表上的约束:EMP

SELECT * FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'EMP'

有没有办法找出当前在一个语句中跨多个表对该数据库强制执行的约束?

例如 EMP 和客户等类似的东西。

4

1 回答 1

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 子句是等价的——第一个更紧凑一点。

分享和享受。

于 2013-05-13T02:38:12.890 回答