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 .