Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Obtendo nomes de coluna de restrição exclusivos do banco de dados Oracle


USER_CONSTRAINTS também retornaria chaves estrangeiras. Você precisa apenas de chaves primárias e exclusivas. Mas a exclusividade também pode ser alcançada por meio de um índice exclusivo. Ele não será mostrado na lista de restrições. Você precisa assistir à visualização USER_INDEXES. O ponto positivo é que as chaves primárias e exclusivas criam índices exclusivos correspondentes. Portanto, é necessário e suficiente verificar USER_INDEXES.

UPD:veja Lalit Kumar B comentário 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