I have a MySQL Statement to insert data to 4 rows at a time. The insert
is working but I'm having difficulty with the ON DUPLICATE KEY UPDATE
.
I'm getting an error: 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
Here is an example:
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)
I tried to wraps the dept and count update with ''
but that didn't help. Is there a better way to update the count
on DUPLICATES. Could you please help! Thanks!
The argument to VALUES()
is supposed to be the name of a column being inserted into. It will use the value that would have been inserted into that column if there hadn't been a duplication.
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)
If id = 1
already exists, this will set its count to 3
and leave all the other columns unchanged.