MySQL против PostgreSQL на дубликате

0

Я хотел бы изменить свой код в PostgreSQL на MySQL

PostgreSQL:

INSERT INTO store VALUES(%s, %s, %s, %s, %s, %s, %s)
   ON CONFLICT ON CONSTRAINT store_number_key DO UPDATE 
   SET quantity=store.quantity+EXCLUDED.quantity

Я получил в MySQL:

INSERT INTO store (name, producent, model, number, 
   quantity, warehouse, location) 
   VALUES(%s, %s, %s, %s, %s, %s, %s)
   ON DUPLICATE KEY UPDATE quanity=quantity+VALUES(quantity)

Это не работает, я не знаю, как должен выглядеть запрос ON DUPLICATE KEY UPDATE. Чего я хочу добиться? Когда кто-то вставляет товар с тем же номером магазина, количество должно быть суммировано.

  • 0
    Что это It doesn't work означает в вашем случае. Получаете ли вы сообщение об ошибке при выполнении запроса, и если да, то какое сообщение об ошибке? Это вставляет неправильное значение, и если да, то какое значение?
  • 1
    Почему вы удалили sql запросы из вопроса?
Показать ещё 1 комментарий
Теги:

1 ответ

0

Этот запрос должен работать:

INSERT INTO store (name, producent, model, number, quantity, warehouse, location) 
   VALUES(%s, %s, %s, %s, %s, %s, %s)
   ON DUPLICATE KEY UPDATE quantity = quantity + VALUES(quantity);

Однако предполагается, что у вас есть уникальный индекс (или ограничение) для столбцов, порождающих конфликт. Ваш вопрос не указывает, что это за столбцы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню