Error: Duplicate entry '0' for key 'PRIMARY'

Quando tento di eseguire una query sql su una mia tabella mysql, ricevo il seguente messaggio:

 

Error: Duplicate entry '0' for key 'PRIMARY'

 

Cosa significa questo errrore e come posso risolverlo?

Aperta 3
MySql 22-08-2024 2 Risposte 97 Visite 0

Risposte ( 2 approvate )

  1. AskDB Staff
    +2
    22-08-2024 16:10:57
    Rispondi

    Il messaggio di errore:

    Duplicate entry for key 'PRIMARY'

    viene visualizzato poiché nella tabella in cui viene eseguita la query esiste una colonna (quasi certamente un ID) definita come primary Key, e pertanto cercare di fare l'INSERT di un record per il quale il valore ID non è definito o è già presentei in tabella, produce l'errore di valore duplicato per la chiave primaria (che come si sà deve essere univoca), che poi questo valore sia zero o altro numero poco importa.

     

    Per risolvere l'errore Duplicate entry for key 'PRIMARY', è necessario definire la colonna che contiene la chiave primaria come AUTO_INCREMENT.

     

    Questo consentirà direttamente al motore di database MySql o anche MariaDB, di incrementare autonomamente di 1 il valore ID del campo ogni qual volta si inserisce un record, preservando così l'univocità della chiave primaria.

  2. Giorgio Borelli
    0
    22-08-2024 16:18:11
    Rispondi

    Per definire un campo ID "chiave primaria" come valore AUTO INCREMENTALE, bisogna modifica la tabella con la seguente istruzione sql:

     

    ALTER TABLE `my_table_name`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
    COMMIT;

     

    Specificando AUTO_INCREMENT=1 stiamo dicendo al motore del database di partire dal valore numerico 1 per l'inserimento del primo record, ed anche se vi sono già dei record presenti, questo non comporterà un problema poiché la numerazione incrementale ripartirà dal valore numerico successivo a quello dell'ID dell'ultimo record.

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

AskDB Staff

AskDB Staff

Autore di questa domanda

 Domanda Precedente

 Elenco Domande 

Domanda Successiva