sql >> Database >  >> RDS >> Oracle

Unieke kolomnamen voor beperkingen uit de Oracle-database halen

USER_CONSTRAINTS zou ook externe sleutels retourneren. U hebt alleen primaire en unieke sleutels nodig. Maar uniciteit kan ook worden bereikt via een unieke index. Het wordt niet weergegeven in de lijst met beperkingen. U moet de weergave USER_INDEXES bekijken. Het goede punt is dat primaire en unieke sleutels corresponderende unieke indexen creëren. Het is dus noodzakelijk en voldoende om USER_INDEXES te controleren.

UPD:zie Lalit Kumar B 's opmerking.

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. Verbindingsfout SQL Server 2008 Er is geen proces aan de andere kant van de pijp

  2. node-mysql-fout:verbind ECONNREFUSED

  3. Wat gebeurde er eerst in mysql:join or where

  4. met behulp van mysql_close()