2012-07-08 17 views
5

mam unique indeks na kolumnie o nazwie label, ale z jakiegoś dziwnego powodu, dlaczego spróbować zrobić aktualizację takiego:wpis MySQL zduplikowane na klucz na UPDATE

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

i istnieje już wiersz z etykietą = 'foo bar' ten błąd:

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

Jak mogę dokonać aktualizacji MySQL? To nie powinno być zerwanie, ponieważ technicznie wciąż istnieje tylko jeden wiersz z kluczem foo bar.

Dzięki.

Odpowiedz

9

To zapytanie SQL próbuje zaktualizować każdy rekord w tabeli książek tymi wartościami, ponieważ nie masz klauzuli WHERE. Jego błąd, ponieważ możesz mieć tylko jeden rekord z tą wartością etykiety, ale zapytanie chce ustawić je wszystkie.

Prawdopodobnie nie wykonujesz zapytania, które zamierzałeś. Może chciałeś zaktualizować tytuł i czas nagrania z tą etykietą. Sprawdź swoją składnię.

+1

Jezus, twarz w dłoń. Przepraszam, i dzięki. – Justin

+3

Bez problemu. Justin pomagający Justinowi jest tylko naturalny;) Jeśli to rozwiązało problem, nie zapomnij uderzyć w zielony czek! – jdi