Mysql
 sql >> Database >  >> RDS >> Mysql

Come trovare il nome di un vincolo in MySQL

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 .