Salta al contenuto

MySQL Error 1005: Cannot create table

Pubblicato il Aggiornato il

In breve: MySQL Error 1005 Cannot create table indica che MySQL non riesce a creare la tabella; il dettaglio errno e il log InnoDB identificano il vincolo o il problema sottostante.

MySQL Error 1005 Cannot create table: significato

Le prime ipotesi da verificare per “MySQL Error 1005 Cannot create table” sono colonne di una chiave esterna con tipo, lunghezza o attributi differenti; indice o tabella padre mancante.

MySQL Error 1005 Cannot create table: sintomo, causa e verifica
MySQL Error 1005: Cannot create table: sintomo, causa probabile e criterio di verifica.

Sintomi e cause probabili

Sintomi da verificare

  • CREATE TABLE o ALTER TABLE termina con Error 1005
  • Il messaggio riporta un errno o un riferimento a un vincolo esterno
  • Una migrazione o l’importazione del database si interrompe
  • La tabella nuova non compare nello schema

Cause probabili

  • Colonne di una chiave esterna con tipo, lunghezza o attributi differenti
  • Indice o tabella padre mancante
  • Nome di vincolo già utilizzato nello stesso schema
  • Engine, charset, spazio disco o permessi non compatibili con la creazione

Diagnosi passo per passo

  1. Copiare il messaggio completo con errno e query
  2. Consultare SHOW ENGINE INNODB STATUS subito dopo l’errore
  3. Confrontare SHOW CREATE TABLE della tabella padre e di quella figlia
  4. Verificare tipo, unsigned, collation e indice delle colonne collegate
  5. Controllare spazio e log del server se l’errore non riguarda un vincolo

Log e dati da controllare

  • Messaggio completo con errno
  • SHOW ENGINE INNODB STATUS
  • SHOW CREATE TABLE delle tabelle coinvolte
  • Error log MySQL o MariaDB

Correzioni sicure

  1. Allineare esattamente le colonne della chiave esterna
  2. Creare l’indice o la tabella padre prima della tabella figlia
  3. Assegnare un nome univoco al vincolo
  4. Uniformare engine e charset quando richiesto
  5. Ripetere la migrazione da backup dopo aver corretto lo schema
MySQL Error 1005 Cannot create table: passaggi diagnostici e correzioni
MySQL Error 1005: Cannot create table: sequenza diagnostica e verifica dopo la correzione.

Verifica finale

  • La tabella viene creata
  • Le chiavi esterne risultano presenti
  • La migrazione prosegue senza Error 1005
  • Inserimento e rollback di prova rispettano i vincoli

Errori da evitare

  • Disattivare permanentemente i controlli delle chiavi esterne
  • Eliminare la tabella padre senza backup
  • Correggere soltanto il nome ignorando l’errno
  • Ripetere l’importazione senza rimuovere lo stato parziale

Guide Xlogic correlate

Fonti tecniche

Domande frequenti

Che cosa significa “MySQL Error 1005 Cannot create table”?

MySQL Error 1005 Cannot create table indica che MySQL non riesce a creare la tabella; il dettaglio errno e il log InnoDB identificano il vincolo o il problema sottostante.

Da cosa può dipendere “MySQL Error 1005 Cannot create table”?

Le cause da verificare per “MySQL Error 1005 Cannot create table” sono: colonne di una chiave esterna con tipo, lunghezza o attributi differenti; indice o tabella padre mancante; nome di vincolo già utilizzato nello stesso schema.

Quali controlli eseguire per “MySQL Error 1005 Cannot create table”?

Per diagnosticare “MySQL Error 1005 Cannot create table”, controlla nell’ordine: copiare il messaggio completo con errno e query; consultare SHOW ENGINE INNODB STATUS subito dopo l’errore; confrontare SHOW CREATE TABLE della tabella padre e di quella figlia. La soluzione è confermata quando la tabella viene creata; le chiavi esterne risultano presenti.

MySQL Error 1005: Cannot create table ultima modifica: 2026-08-03T15:49:11+02:00 da Team tecnico Xlogic

Ti è piaciuto questo Post?