Problema:
Vuoi trovare i nomi dei vincoli in una tabella in Oracle.
Esempio:
Vogliamo visualizzare i nomi dei vincoli nella tabella student
.
Soluzione:
select CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME from USER_CONSTRAINTS where TABLE_NAME='STUDENT';
Ecco il risultato:
CONSTRAINT_NAME | TIPO_VINCENTE | TABLE_NAME |
---|---|---|
SYS_C007376 | R | STUDENTE |
SYS_C007374 | P | STUDENTE |
SYS_C007375 | U | STUDENTE |
SYS_C007372 | C | STUDENTE |
Discussione:
In Oracle, utilizza la vista user_constraints
per visualizzare i nomi dei vincoli nel database. La colonna constraint_name
contiene il nome del vincolo, constraint_type
indica il tipo di vincolo e table_name
contiene il nome della tabella a cui appartiene il vincolo. Nella colonna tipo_vincolo, il valore "R" è per la chiave esterna, "P" è per la chiave primaria, "U" è per il vincolo di unicità e "C" è per il controllo del vincolo. Nel nostro esempio, c'è un vincolo nella tabella student
di tipo P (chiave primaria) il cui nome è SYS_C007374
.