2011-06-04 163 views
0

它只是讓我更新導致共2MySQL在重複鍵更新

我的繼承人表

CREATE TABLE `cart` (
    `id` int(7) NOT NULL AUTO_INCREMENT, 
    `User` int(7) DEFAULT NULL, 
    `Product` varchar(100) DEFAULT NULL, 
    `Quantity` int(7) DEFAULT NULL, 
    UNIQUE KEY `id` (`id`), 
    UNIQUE KEY `Quantity` (`Quantity`) 
) 

然後,我的代碼中插入的數據是:

$a = '1' 

query2 = "  INSERT INTO CART(User, Product,Quantity) 
       VALUES 
       ('$id','$model_number','$a') 
       ON DUPLICATE KEY UPDATE Quantity=Quantity+1"; 

它將工作時,我將數據添加到數據庫,但在我第二次嘗試時,我得到此錯誤:

Duplicate entry '2' for key 'Quantity' 

回答

2

你可能不希望此行:

UNIQUE KEY `Quantity` (`Quantity`) 

這造成在數量字段,這就是爲什麼你的第二個插入失敗的唯一約束。我想不出爲什麼你會想要這樣的理由。

P.S.如果刪除該行,請確保從上一行刪除逗號(,)。

+0

最後一個陳述是一個笑話嗎?這是非常明顯的 – 2011-06-04 01:36:46

+0

@RPM你會驚訝什麼是很多人不明顯。 – dkamins 2011-06-04 01:38:12

+0

或者,如果您仍然想通過數量進行快速查找,請刪除'UNIQUE'部分。 – 2011-06-04 02:37:28