Обновление дубликата ключа - MariaDB

0

У меня есть выражение 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. Не могли бы вы помочь? Спасибо!

  • 0
    count - зарезервированное слово; Предлагаем либо изменить имя столбца, либо добавить обратные символы вокруг него.
Теги:
mariadb
mariasql

1 ответ

2
Лучший ответ

Аргументом для 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 и оставит все остальные столбцы без изменений.

  • 0
    @Mustafa. , , Я думаю, что ответ Бармара правильный.
  • 0
    @GordonLinoff Это действительно сработало! У меня был дополнительный ' который я исправил после просмотра вашего комментария. Спасибо и спасибо @Bramar !!
Показать ещё 2 комментария

Ещё вопросы

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