ERROR 1822 (HY000): Failed to add the foreign key constraint. Missing index for constraint 'fk_name' in the referenced table. – MySQL 1822

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 comune

Diagnosi

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.

mysql
SHOW ENGINE INNODB STATUS\G

Risoluzione

Procedura di risoluzione per MySQL: Errore 1822 — indice mancante nella tabella padre del vincolo FK

Difficoltà: mediaRischio: basso

Applicare la correzione al database o alla query secondo le best practice di amministrazione MySQL.

  1. Ispezionare la sintassi della query o la configurazione delle variabili
  2. Regolare i parametri in my.cnf o correggere i vincoli DDL
  3. 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

Schede correlate