Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

'Fungsi VALUES' MySQL tidak digunakan lagi

Pada dasarnya, mysql sedang mencari ke arah menghapus penggunaan non-standar lama dari fungsi nilai untuk membersihkan jalan untuk beberapa pekerjaan di masa depan di mana standar SQL memungkinkan menggunakan kata kunci VALUES untuk sesuatu yang sangat berbeda, dan karena bagaimana fungsi VALUES bekerja di subqueries atau tidak dalam klausa ON DUPLICATE KEY UPDATE bisa mengejutkan.

Anda perlu menambahkan alias ke klausa VALUES dan kemudian menggunakan alias itu alih-alih fungsi VALUES non-standar dalam klausa ON DUPLICATE KEY UPDATE, mis. ubah

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

untuk

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

(Ini hanya berfungsi pada mysql 8+, bukan pada versi yang lebih lama atau versi mariadb apa pun hingga setidaknya 10.7.1)

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql - mengisi baris untuk bulan yang hilang

  2. Cara mengimpor file excel ke database MySQL

  3. Contoh erlang mysql

  4. Mysql Pilih beberapa baris acak dan ditambah satu baris tertentu

  5. Pemisah mysql find_in_set slash( / )