sql >> Database teknologi >  >> RDS >> Mysql

Mysql 'VALUES function' er forældet

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 :




  1. Formatering af et tidsstempel

  2. Sådan hentes data fra databasen ved hjælp af webservices (JAX - RS) i eclipse ved hjælp af Java

  3. MySQL-forespørgsel, der finder værdier i en kommasepareret streng

  4. Barman Cloud – Del 2:Cloud Backup