2012-07-08 44 views
5

Tôi có một chỉ số unique trên một cột tên là label, nhưng đối với một số lý do kỳ lạ tại sao tôi cố gắng và làm một bản cập nhật như:nhập MySQL trùng lặp cho khóa trên CẬP NHẬT

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

Và có đã tồn tại một hàng với nhãn = 'foo bar' lỗi này:

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

Làm cách nào để tôi thực hiện cập nhật? Điều này không nên phá vỡ vì kỹ thuật vẫn chỉ là một hàng với khóa foo bar.

Cảm ơn.

Trả lời

9

Truy vấn SQL này đang cố cập nhật mọi bản ghi trong bảng sách với các giá trị đó, vì bạn không có mệnh đề WHERE. Lỗi của nó vì bạn chỉ có thể có một bản ghi với giá trị nhãn đó nhưng truy vấn muốn đặt tất cả các bản ghi đó.

Tôi nghĩ có thể bạn không thực hiện truy vấn bạn dự định. Có thể bạn muốn cập nhật tiêu đề và thời gian cho bản ghi với nhãn đó. Kiểm tra cú pháp của bạn.

+1

Chúa Giêsu, đối mặt với lòng bàn tay. Xin lỗi, và cảm ơn. – Justin

+3

Không sao cả. Một Justin giúp Justin chỉ là tự nhiên;) Nếu nó giải quyết được vấn đề, đừng quên nhấn nút kiểm tra màu xanh lá cây! – jdi

Các vấn đề liên quan