Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mysql 'VALUES function' không được dùng nữa

Về cơ bản, mysql đang hướng tới việc loại bỏ việc sử dụng hàm giá trị không theo tiêu chuẩn từ lâu để dọn đường cho một số công việc trong tương lai trong đó tiêu chuẩn SQL cho phép sử dụng từ khóa VALUES cho một thứ gì đó rất khác và vì cách hàm VALUES hoạt động trong các truy vấn con hay không trong điều khoản CẬP NHẬT KHÓA TRÊN DUPLICATE có thể gây ngạc nhiên.

Bạn cần thêm bí danh vào mệnh đề VALUES và sau đó sử dụng bí danh đó thay vì hàm GIÁ TRỊ không chuẩn trong mệnh đề CẬP NHẬT KHÓA BẬT, ví dụ:thay đổi

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

đến

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

(Điều này chỉ hoạt động trên mysql 8+, không hoạt động trên các phiên bản cũ hơn hoặc trong bất kỳ phiên bản nào của mariadb thông qua ít nhất 10.7.1)

Từ 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. tự động cập nhật trường mysql dựa trên giá trị của trường khác

  2. Lỗi gần 'DELIMITER $$'

  3. Chèn cơ sở dữ liệu không đồng bộ - python + mysql

  4. MySQL và MySQLi khi sử dụng PHP

  5. Tôi có thể thực hiện tăng nguyên tử trong Rails 2.3 mà không giảm xuống SQL không?