本文介紹了查找數(shù)據(jù)庫表的唯一約束的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
我正在嘗試使用Java查找表的唯一約束(在Oracle數(shù)據(jù)庫上,但這應(yīng)該沒有什么不同)。
我找到了一種發(fā)現(xiàn)表的主鍵的方法,這要?dú)w功于DatabaseMetaData的getPrimaryKeys(.);
但是,我找不到表的唯一約束,互聯(lián)網(wǎng)也不能幫助我,所以我在這里結(jié)束提問:)
是否有一種簡潔的方法來查找唯一約束(或者,更確切地說,查找表必須唯一的列名)。嗯,你拿到了嗎,呵呵)一張桌子?
致以最誠摯的問候
NILS
推薦答案
可以查詢數(shù)據(jù)字典:
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
這篇關(guān)于查找數(shù)據(jù)庫表的唯一約束的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,