sql >> Base de Datos >  >> RDS >> Oracle

Obtener nombres de columna de restricción únicos de la base de datos de Oracle

USER_CONSTRAINTS también devolvería claves foráneas. Solo necesita claves primarias y únicas. Pero la singularidad también se puede lograr a través de un índice único. No se mostrará en la lista de restricciones. Necesita ver la vista USER_INDEXES. Lo bueno es que las claves primarias y únicas crean índices únicos correspondientes. Por lo tanto, es necesario y suficiente verificar USER_INDEXES.

UPD:ver Lalit Kumar B comentario de.

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