MySQL重复密钥更新

时间:2011-06-04 01:31:51

标签: mysql duplicates

它只允许我更新导致总共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'

1 个答案:

答案 0 :(得分:2)

你可能不想要这一行:

  UNIQUE KEY `Quantity` (`Quantity`)

这会在数量字段上创建一个唯一约束,这就是您的第二个插入失败的原因。我想不出你为什么会这么想的原因。

P.S。如果删除该行,请确保从上一行中删除逗号(,)。

相关问题