Errore numero 1062 in MySQL

August 27

Il server di database MySQL è un database open-source comunemente utilizzati, soprattutto nel campo dello sviluppo Web. Si integra con una vasta gamma di linguaggi di scripting, che lo rende utile per i programmatori sia esperti e nuovi. I server di database, tuttavia, sono bestie complesse, e MySQL non fa eccezione. Ordinamento dei propri errori e determinare le migliori pratiche richiede un certo studio ed esperienza.

Senso

Il messaggio per il codice di errore 1062 in MySQL è "voce duplicata [valore di iscrizione] per la chiave [nome della chiave]." Questo significa che si è tentato di inserire i dati che duplica i dati esistenti per una chiave univoca. Ad esempio, se si dispone di una tabella di account utente e "username" è una chiave univoca su questo tavolo, e una voce con il nome utente "exampleguy" esiste già nella tabella, se si tenta di inserire una nuova riga con il nome utente " exampleguy, "si otterrà un errore con codice 1062.

Motivi possibili

La prima causa da cercare è un legittimo collisione inserimento dei dati; per esempio, voi o il vostro software non ha verificato se i dati sono un duplicato prima di tentare di inserirlo. Un'altra possibile causa è che la struttura della tabella non è stato progettato in modo corretto. Se si scopre che spesso è necessario inserire elementi duplicati, ma tali elementi sono definiti nella struttura della tabella come una chiave univoca, quindi la struttura della tabella ha un problema. Fare quella chiave non unico.

Modi per evitare

Prima di inserire i dati in un database, "sanity check" esso. Quando una tabella ha una chiave univoca, assicurarsi che la chiave non viene duplicato prima di inserire. Inoltre, utilizzare chiavi univoche solo se del caso. In una tabella di utenti del sito web, per esempio, non ci sono due conti dovrebbero avere lo stesso nome utente, in modo da rendere la colonna "username" una chiave unica e verificare anche che i nomi utente desiderati nuovi utenti non sono presi prima di inserire i nuovi dati dell'account nel Banca dati. Non fare la colonna "nome" unico, tuttavia, come questo si tradurrà in collisione di dati.

considerazioni

Si può essere tentati di rimuovere semplicemente tutti gli indici univoci per evitare il lavoro necessario per prevenire gli errori 1062. Tuttavia, chiavi univoche in modo significativo accelerare il recupero dei dati. Inoltre, per alcuni elementi di dati semplicemente rende opportuno applicare l'univocità, come nel caso della colonna nome utente in una tabella utente. Al contrario, chiavi univoche sono più lente di scrivere perché il file indice deve essere aggiornato, e deve essere utilizzato solo nei casi in cui si può naturalmente aspetta una chiave per essere unico.