MySQL против PostgreSQL на дубликате - PullRequest
0 голосов
/ 16 марта 2019

Я хотел бы изменить свой код в 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. Чего я хочу добиться? Когда кто-то вставляет товар с таким же номером магазина, количество должно быть суммировано.

1 Ответ

0 голосов
/ 16 марта 2019

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

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);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...