查找数据库表的唯一约束

Nil*_*ils 8 java sql oracle constraints unique

我正在尝试使用Java找到表的唯一约束(在Oracle数据库上,但这应该没有区别).

感谢DatabaseMetaData的getPrimaryKeys(....),我找到了一种方法来发现表的主键.然而,我无法找到桌子的独特结构,互联网无法帮助我,因此我在这里结束问我的问题:)

是否有一种干净的方法来找到一个表的唯一约束(或者更确切地说,一个表必须是唯一的列的名称......那么你得到它嘿嘿)?最好的祝福,

尼尔斯

Vin*_*rat 20

你可以查询数据字典:

SQL> SELECT cc.*
  2    FROM all_constraints c
  3    JOIN all_cons_columns cc ON (c.owner = cc.owner
  4                             AND c.constraint_name = cc.constraint_name)
  5   WHERE c.constraint_type = 'U'
  6     AND c.table_name = 'T';

OWNER      CONSTRAINT_NAME   TABLE_NAME     COLUMN_NAME     POSITION
---------- ----------------- -------------- ------------- ----------
VNZ        UNIQUE_COL        T              COLUMN1                1
VNZ        UNIQUE_COL        T              COLUMN2                2
VNZ        UNIQUE_COL2       T              COLUMN2                1
Run Code Online (Sandbox Code Playgroud)