sql >> データベース >  >> RDS >> Oracle

Oracleデータベースから一意の制約列名を取得する

    USER_CONSTRAINTSは外部キーも返します。必要なのは主キーと一意のキーだけです。ただし、一意性は、一意のインデックスを介して実現することもできます。制約リストには表示されません。 USER_INDEXESビューを監視する必要があります。良い点は、主キーと一意キーが対応する一意のインデックスを作成することです。したがって、USER_INDEXESを確認する必要があります。

    UPD: Lalit KumarB を参照してください のコメント。

    select c.COLUMN_NAME
    from USER_INDEXES i, USER_IND_COLUMNS c
    where i.TABLE_NAME = 'YOUR_TABLE'
      and i.UNIQUENESS = 'UNIQUE'
      and i.TABLE_NAME = c.TABLE_NAME
      and i.INDEX_NAME = c.INDEX_NAME
    union
    select cc.COLUMN_NAME
    from USER_CONSTRAINTS con, USER_CONS_COLUMNS cc
    where con.TABLE_NAME = 'YOUR_TABLE'
      and con.CONSTRAINT_TYPE in ( 'U', 'P' )
      and con.TABLE_NAME = cc.TABLE_NAME
      and con.CONSTRAINT_NAME = cc.CONSTRAINT_NAME
    


    1. northwindデータベースのSQLファイルをPostgreSQLにインポートする方法は?

    2. 動的SQLを使用したテーブル構造の取得

    3. Oracle SQL、欠落している値を最も近い欠落していない値で埋めます

    4. jsonの助けを借りてPHP、MySqlを使用してAndroidでユーザーログインクレデンシャルを検証する方法