Kortom, mysql is op zoek naar het verwijderen van een langdurig niet-standaard gebruik van de waardenfunctie om de weg vrij te maken voor toekomstig werk waarbij de SQL-standaard het gebruik van een VALUES-sleutelwoord voor iets heel anders toestaat, en omdat hoe de VALUES-functie werkt in subquery's of niet in een ON DUPLICATE KEY UPDATE-clausule kan verrassend zijn.
U moet een alias toevoegen aan de VALUES-clausule en vervolgens die alias gebruiken in plaats van de niet-standaard VALUES-functie in de ON DUPLICATE KEY UPDATE-clausule, b.v. wijzigen
INSERT INTO foo (bar, baz) VALUES (1,2)
ON DUPLICATE KEY UPDATE baz=VALUES(baz)
naar
INSERT INTO foo (bar, baz) VALUES (1,2) AS new_foo
ON DUPLICATE KEY UPDATE baz=new_foo.baz
(Dit werkt alleen op mysql 8+, niet op oudere versies of in elke versie van mariadb tot en met 10.7.1)
Van https://dev.mysql.com/worklog/task/?id=13325 :