Đây chỉ là phỏng đoán vì bạn chưa cung cấp lược đồ của mình, nhưng một trong các cột trong khóa duy nhất của bạn có thể bị vô hiệu hóa không?
Chỉnh sửa:
Như @ G-Nugget đã nói trong phần nhận xét, bạn cần một khóa duy nhất trên các cột được đề cập:
http://dev.mysql.com/doc /refman/5.6/en/insert-on-duplicate.html
Bạn cần có một khóa duy nhất trên tổ hợp các cột phải là duy nhất.
ví dụ:
ALTER TABLE yourTable ADD UNIQUE KEY (`canid`, `categoryid`);
Ngoài ra, khi đặt câu hỏi về cơ sở dữ liệu, vui lòng bao gồm SHOW CREATE TABLE
cho các bảng được đề cập.