Grundlæggende ser mysql mod at fjerne en langvarig ikke-standard brug af værdifunktionen for at rydde vejen for noget fremtidigt arbejde, hvor SQL-standarden tillader brug af et VALUES nøgleord til noget meget anderledes, og fordi hvordan VALUES-funktionen fungerer i underforespørgsler eller ej i en ON DUPLICATE KEY UPDATE-klausul kan være overraskende.
Du skal tilføje et alias til VALUES-udtrykket og derefter bruge det alias i stedet for den ikke-standardiserede VALUES-funktion i ON DUPLICATE KEY UPDATE-udtrykket, f.eks. ændre
INSERT INTO foo (bar, baz) VALUES (1,2)
ON DUPLICATE KEY UPDATE baz=VALUES(baz)
til
INSERT INTO foo (bar, baz) VALUES (1,2) AS new_foo
ON DUPLICATE KEY UPDATE baz=new_foo.baz
(Dette virker kun på mysql 8+, ikke på ældre versioner eller i nogen version af mariadb til mindst 10.7.1)
Fra https://dev.mysql.com/worklog/task/?id=13325 :