MySQL在重复密钥更新上

问题描述

| 它只允许我更新,导致总共2 这是我的桌子
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\'
    

解决方法

        您可能不希望这一行:
  UNIQUE KEY `Quantity` (`Quantity`)
这在数量字段上创建了唯一的约束,这就是第二次插入失败的原因。我想不出您为什么要这么做的任何理由。 附言如果删除该行,请确保从前一行删除逗号(,)。