Problema:
Vuoi trovare i nomi dei vincoli in una tabella in MySQL.
Esempio:
Vogliamo visualizzare i nomi dei vincoli nella tabella student
.
Soluzione:
SELECT TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME FROM information_schema.table_constraints WHERE table_name='student';
Ecco il risultato:
TABLE_NAME | TIPO_VINCENTE | CONSTRAINT_NAME |
---|---|---|
studente | CHIAVE PRIMARIA | PRIMARIO |
studente | UNICO | numero_personale |
studente | CHIAVE ESTERA | studente_ibfk_1 |
studente | CONTROLLA | student_chk_1 |
Discussione:
Usa la vista table_constraints
nel information_schema
schema. Questa vista contiene molte colonne, ma le più importanti sono table_name
, constraint_type
e constraint_name
. La colonna table_name fornisce il nome della tabella in cui è definito il vincolo e la colonna constraint_name
contiene il nome del vincolo. La colonna constraint_type
indica il tipo di vincolo:PRIMARY KEY
per il tipo di chiave primaria, FOREIGN KEY
per il tipo di chiave esterna, UNIQUE
per i valori univoci e CHECK
per il controllo del vincolo. Nel nostro esempio, puoi vedere il vincolo denominato PRIMARY
per la chiave primaria nello student
tavolo. Il constraint_type
la colonna fornisce informazioni sul tipo di ogni vincolo; per la chiave primaria, è PRIMARY KEY
.