2012-07-08 9 views
5

Ho un indice unique su una colonna denominata label, ma per qualche strana ragione per cui io cerco di fare un aggiornamento del tipo:entry MySQL duplicati per la chiave su UPDATE

UPDATE books SET label = 'foo bar', title = 'something new', modified = UTC_TIMESTAMP(); 

ed esiste già una riga con etichetta = 'foo bar' questo errori:

#1062 - Duplicate entry 'foo bar' for key 'label' 

Come posso fare MySQL fare l'aggiornamento? Questo non dovrebbe essere interrotto perché tecnicamente c'è ancora solo una riga con la chiave foo bar.

Grazie.

risposta

9

Questa query SQL sta tentando di aggiornare ogni singolo record nella tabella di libri con tali valori, perché non si dispone di clausola WHERE. Il suo fallimento perché è possibile avere solo un record con quel valore etichetta, ma la query vuole impostarli tutti su di esso.

Penso che probabilmente non stai eseguendo la query che intendevi. Forse intendevi aggiornare il titolo e l'ora del record con quell'etichetta. Controlla la tua sintassi.

+1

Gesù, faccia nel palmo. Scusa, e grazie. – Justin

+3

Nessun problema. Un Giustino che aiuta un Giustino è naturale;) Se ha risolto il problema, non dimenticare di fare il controllo verde! – jdi