Problema:
Você deseja localizar os nomes das restrições em uma tabela no Oracle.
Exemplo:
Queremos exibir os nomes das restrições na tabela
student
. Solução:
select CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME from USER_CONSTRAINTS where TABLE_NAME='STUDENT';
Aqui está o resultado:
CONSTRAINT_NAME | CONSTRAINT_TYPE | TABLE_NAME |
---|---|---|
SYS_C007376 | R | ESTUDANTE |
SYS_C007374 | P | ESTUDANTE |
SYS_C007375 | U | ESTUDANTE |
SYS_C007372 | C | ESTUDANTE |
Discussão:
No Oracle, use a visualização
user_constraints
para exibir os nomes das restrições no banco de dados. A coluna constraint_name
contém o nome da restrição, constraint_type
indica o tipo de restrição e table_name
contém o nome da tabela à qual a restrição pertence. Na coluna constraint_type, o valor “R” é para a chave estrangeira, “P” é para a chave primária, “U” é para a restrição de exclusividade e “C” é para a verificação de restrição. Em nosso exemplo, há uma restrição na tabela student
do tipo P (chave primária) cujo nome é SYS_C007374
.