У меня есть выражение MySQL для вставки данных в 4 строки за раз. insert
работает, но я испытываю трудности с ON DUPLICATE KEY UPDATE
.
Я получаю сообщение об ошибке: у You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''count = VALUES(11, 22, 33, 44)'' at line 15
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''count = VALUES(11, 22, 33, 44)'' at line 15
Вот пример:
INSERT INTO table1 (id, dept, date, count)
VALUES
(1, 4, 2018-01-15, 3),
(2, 3, 2018-01-15, 4),
(3, 3, 2018-01-15, 14),
(4, 2, 2018-01-15, 11)
ON DUPLICATE KEY UPDATE
count = VALUES(11, 22, 33, 44)
Я пытался обернуть отдел и подсчитать обновление с помощью ''
но это не помогло. Есть ли лучший способ обновить count
DUPLICATES. Не могли бы вы помочь? Спасибо!
Аргументом для VALUES()
должно быть имя столбца, в которое вставлено. Он будет использовать значение, которое было бы вставлено в этот столбец, если бы не было дублирования.
INSERT INTO table1 (id, dept, date, count)
VALUES
(1, 4, 2018-01-15, 3),
(2, 3, 2018-01-15, 4),
(3, 3, 2018-01-15, 14),
(4, 2, 2018-01-15, 11)
ON DUPLICATE KEY UPDATE
count = VALUES(count)
Если id = 1
уже существует, это установит его счет в 3
и оставит все остальные столбцы без изменений.
'
который я исправил после просмотра вашего комментария. Спасибо и спасибо @Bramar !!
count
- зарезервированное слово; Предлагаем либо изменить имя столбца, либо добавить обратные символы вокруг него.