sql >> Databáze >  >> RDS >> Mysql

Mysql 'VALUES function' je zastaralá

Mysql se v zásadě snaží odstranit dlouhodobé nestandardní používání funkce values, aby se uvolnila cesta pro nějakou budoucí práci, kde standard SQL umožňuje použití klíčového slova VALUES pro něco velmi odlišného, ​​a protože to, jak funkce VALUES funguje v dílčích dotazech či nikoli v klauzuli ON DUPLICATE KEY UPDATE může být překvapivé.

Musíte přidat alias do klauzule VALUES a pak použít tento alias místo nestandardní funkce VALUES v klauzuli ON DUPLICATE KEY UPDATE, např. změnit

INSERT INTO foo (bar, baz) VALUES (1,2)
ON DUPLICATE KEY UPDATE baz=VALUES(baz)

do

INSERT INTO foo (bar, baz) VALUES (1,2) AS new_foo
ON DUPLICATE KEY UPDATE baz=new_foo.baz

(Toto funguje pouze na mysql 8+, ne na starších verzích nebo v jakékoli verzi mariadb alespoň od 10.7.1)

Z https://dev.mysql.com/worklog/task/?id=13325 :




  1. generovat vybrané možnosti pomocí polí php

  2. Potíže s rozhodováním o identifikujícím nebo neidentifikujícím vztahu

  3. Rozšíření tříd v databázi

  4. Jak nakonfigurovat SELinux pro PostgreSQL a TimescaleDB