2011-06-04 165 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