sql >> Databasteknik >  >> RDS >> Oracle

Få unika begränsningskolumnnamn från Oracle-databasen

USER_CONSTRAINTS skulle också returnera främmande nycklar. Du behöver bara primära och unika nycklar. Men unikhet kan också uppnås via unikt index. Det kommer inte att visas i begränsningslistan. Du måste titta på visningen USER_INDEXES. Den goda poängen är att primära och unika nycklar skapar motsvarande unika index. Så det är nödvändigt och tillräckligt att kontrollera 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. Installera RPostgreSQL på RHEL 6.5 libpq-fe.h Fel

  2. Övervinner tvetydigt fältfel i SQL-fråga

  3. Hämta kolumnvärdeslängd, inte kolumnmaxlängd på värde

  4. GitLab CI Django och Postgres