sql >> Database teknologi >  >> RDS >> Oracle

Henter unikke begrænsningskolonnenavne fra Oracle-databasen

USER_CONSTRAINTS ville også returnere fremmednøgler. Du behøver kun primære og unikke nøgler. Men unikhed kan også opnås via unikt indeks. Det vil ikke blive vist på listen over begrænsninger. Du skal se visningen USER_INDEXES. Den gode pointe er, at primære og unikke nøgler skaber tilsvarende unikke indekser. Så det er nødvendigt og tilstrækkeligt at kontrollere USER_INDEXES.

UPD:se Lalit Kumar B 's kommentar.

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. Problem med at udføre procedure i spring boot schema.sql-fil

  2. Få århundredet fra en dato i PostgreSQL

  3. Er der en enkel måde at konvertere MySQL-data til Title Case?

  4. Udskrivning til skærm i .sql-fil postgres