Salta al contenuto

MySQL Error 1022: cannot write duplicate key in table

Pubblicato il Aggiornato il

In breve: MySQL Error 1022 duplicate key table indica che una creazione o modifica della tabella produrrebbe una chiave, un vincolo o un valore univoco già presente.

MySQL Error 1022 duplicate key table: significato

Le prime ipotesi da verificare per “MySQL Error 1022 duplicate key table” sono dati duplicati rispetto al nuovo indice UNIQUE; nome di vincolo già usato nello schema.

MySQL Error 1022 duplicate key table: sintomo, causa e verifica
MySQL Error 1022: cannot write duplicate key in table: sintomo, causa probabile e criterio di verifica.

Sintomi e cause probabili

Sintomi da verificare

  • ALTER TABLE o CREATE TABLE termina con Error 1022
  • La migrazione si blocca durante la creazione di un indice o vincolo
  • Il messaggio cita duplicate key o un nome di constraint
  • La tabella rimane nella struttura precedente

Cause probabili

  • Dati duplicati rispetto al nuovo indice UNIQUE
  • Nome di vincolo già usato nello schema
  • Migrazione già eseguita in parte
  • Copia o rinomina di tabella che collide con indici esistenti

Diagnosi passo per passo

  1. Copiare query e nome della chiave riportata
  2. Esaminare SHOW CREATE TABLE prima della modifica
  3. Cercare valori duplicati nelle colonne del nuovo indice
  4. Verificare i nomi dei vincoli nello schema
  5. Controllare lo stato e la cronologia della migrazione

Log e dati da controllare

  • Query ALTER o CREATE completa
  • SHOW CREATE TABLE
  • Elenco dei valori duplicati
  • Log e versione della migrazione

Correzioni sicure

  1. Correggere o consolidare i duplicati dopo un backup
  2. Assegnare un nome univoco al vincolo
  3. Rendere la migrazione consapevole dello stato già applicato
  4. Ricreare l’indice soltanto dopo aver verificato i dati
  5. Ripetere la modifica in staging
MySQL Error 1022 duplicate key table: passaggi diagnostici e correzioni
MySQL Error 1022: cannot write duplicate key in table: sequenza diagnostica e verifica dopo la correzione.

Verifica finale

  • ALTER TABLE termina correttamente
  • L’indice o il vincolo compare una sola volta
  • Non restano duplicati vietati
  • Le query applicative continuano a funzionare

Errori da evitare

  • Cancellare righe duplicate senza criteri
  • Rimuovere tutti gli indici per completare la migrazione
  • Rieseguire più volte la stessa ALTER
  • Disattivare i vincoli senza verifica finale

Guide Xlogic correlate

Fonti tecniche

Domande frequenti

Che cosa significa “MySQL Error 1022 duplicate key table”?

MySQL Error 1022 duplicate key table indica che una creazione o modifica della tabella produrrebbe una chiave, un vincolo o un valore univoco già presente.

Da cosa può dipendere “MySQL Error 1022 duplicate key table”?

Le cause da verificare per “MySQL Error 1022 duplicate key table” sono: dati duplicati rispetto al nuovo indice UNIQUE; nome di vincolo già usato nello schema; migrazione già eseguita in parte.

Quali controlli eseguire per “MySQL Error 1022 duplicate key table”?

Per diagnosticare “MySQL Error 1022 duplicate key table”, controlla nell’ordine: copiare query e nome della chiave riportata; esaminare SHOW CREATE TABLE prima della modifica; cercare valori duplicati nelle colonne del nuovo indice. La soluzione è confermata quando ALTER TABLE termina correttamente; L’indice o il vincolo compare una sola volta.

MySQL Error 1022: cannot write duplicate key in table ultima modifica: 2026-08-03T15:49:12+02:00 da Team tecnico Xlogic

Ti è piaciuto questo Post?