Обновление MySQL On Duplicate Key - PullRequest
0 голосов
/ 04 июня 2011

Это только позволяет мне обновить, в результате всего 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 Ответ

2 голосов
/ 04 июня 2011

Возможно, вам не нужна эта строка:

  UNIQUE KEY `Quantity` (`Quantity`)

Это создает уникальное ограничение для поля количества, поэтому ваша вторая вставка не удалась.Я не могу придумать причину, почему вы хотели бы этого.

PS Если вы удалите эту строку, обязательно удалите запятую (,) из предыдущей строки.

...