Я хотел бы изменить свой код в 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. Чего я хочу добиться? Когда кто-то вставляет товар с тем же номером магазина, количество должно быть суммировано.
Этот запрос должен работать:
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);
Однако предполагается, что у вас есть уникальный индекс (или ограничение) для столбцов, порождающих конфликт. Ваш вопрос не указывает, что это за столбцы.
It doesn't work
означает в вашем случае. Получаете ли вы сообщение об ошибке при выполнении запроса, и если да, то какое сообщение об ошибке? Это вставляет неправильное значение, и если да, то какое значение?