Indici e Performance
ERROR 1822 (HY000): Failed to add the foreign key constraint. Missing index for constraint 'fk_name' in the referenced table. – MySQL 1822
La definizione di una Foreign Key richiede che le colonne referenziate nella tabella genitore siano coperte da un indice (PRIMARY o KEY); se l'indice non esiste l'aggiunta del vincolo fallisce.
Cosa significa questo errore?
La definizione di una Foreign Key richiede che le colonne referenziate nella tabella genitore siano coperte da un indice (PRIMARY o KEY); se l'indice non esiste l'aggiunta del vincolo fallisce.
Messaggio originale
ERROR 1822 (HY000): Failed to add the foreign key constraint. Missing index for constraint 'fk_name' in the referenced table.Contesto e parole chiave
Alias
- 1822
- ER_FK_NO_INDEX_PARENT
Messaggi alternativi
- indice mancante nella tabella referenziata per vincolo foreign key
Prodotti
- MySQL Server / Percona Server / MariaDB / InnoDB Engine
Piattaforme
- Linux
- macOS
- Multipiattaforma
- Windows Server
Parole chiave
- 1822
- database
- errore-mysql-1822-missing-index-for-foreign-key-parent
- Indici e Performance
- innodb
- mysql
- mysql.risorse.1822-foreign-key-missing-index-parent
Cause possibili
Origine del problema per MySQL: Errore 1822 — indice mancante nella tabella padre del vincolo FK
La definizione di una Foreign Key richiede che le colonne referenziate nella tabella genitore siano coperte da un indice (PRIMARY o KEY); se l'indice non esiste l'aggiunta del vincolo fallisce.
molto comuneDiagnosi
Ispezione diagnostica MySQL per MySQL: Errore 1822 — indice mancante nella tabella padre del vincolo FK
Eseguire comandi di controllo di stato nel client MySQL o consultare il file di log degli errori /var/log/mysql/error.log.
Come leggere il risultato. Mostra lo stato interno di lock, transazioni in corso o errori di allocazione e vincoli relazionali.
SHOW ENGINE INNODB STATUS\GRisoluzione
Procedura di risoluzione per MySQL: Errore 1822 — indice mancante nella tabella padre del vincolo FK
Applicare la correzione al database o alla query secondo le best practice di amministrazione MySQL.
- Ispezionare la sintassi della query o la configurazione delle variabili
- Regolare i parametri in my.cnf o correggere i vincoli DDL
- Testare nuovamente la connessione o l'esecuzione della transazione
Domande frequenti
Come risolvere il codice 1822 in MySQL?
La definizione di una Foreign Key richiede che le colonne referenziate nella tabella genitore siano coperte da un indice (PRIMARY o KEY); se l'indice non esiste l'aggiunta del vincolo fallisce.
Approfondimenti
- MySQL Server Error Reference - Oracle Documentation documentazione_ufficiale