查找数据库表的唯一约束

2022-02-26 00:00:00 sql constraints unique oracle java

我正在尝试使用Java查找表的唯一约束(在Oracle数据库上,但这应该没有什么不同)。

我找到了一种发现表的主键的方法,这要归功于DatabaseMetaData的getPrimaryKeys(.); 但是,我找不到表的唯一约束,互联网也不能帮助我,所以我在这里结束提问:)

是否有一种简洁的方法来查找唯一约束(或者,更确切地说,查找表必须唯一的列名)。嗯,你拿到了吗,呵呵)一张桌子? 致以最诚挚的问候

NILS


解决方案

可以查询数据字典:

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

相关文章