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

TRÊN thực hiện / thiết kế CẬP NHẬT KEY DUPLICATE

Trước tiên, bạn cần một chỉ mục duy nhất trên (usersessid, product_id) . Tôi không chắc liệu bạn có thực sự đang sử dụng cột id được tạo tự động hay không , nhưng nếu không, bạn nên thay đổi khóa chính thành (usersessid, product_id) . Sau đó, thay vì chạy một UPDATE riêng biệt truy vấn, chỉ chạy một INSERT duy nhất truy vấn:

INSERT INTO sessionBasket (userid, usersessid, date_added, product_id, qty, notes)
VALUES (?, ?, now(), ?, ?, ?)
ON DUPLICATE KEY UPDATE qty = qty + ?

Chỉ để làm rõ chỉ mục duy nhất trông như thế nào:

CREATE UNIQUE INDEX sessionBasket_uniq ON sessionBasket (usersessid, product_id);

Hoặc khóa chính:

ALTER TABLE sessionBasket ADD CONSTRAINT sessionBasket_pkey PRIMARY KEY (usersessid, product_id);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhóm DateTime theo ngày và giờ

  2. Khôi phục thư mục cơ sở dữ liệu MySQL từ một đĩa cứng đã khôi phục

  3. mysql_connect VS mysql_pconnect

  4. Làm thế nào để tạo bảng với mối quan hệ N:M trong MySQL?

  5. Cách sửa lỗi 'java.sql.SQLFeatureNotSupportedException' trong khi sử dụng phương thức createArrayOf ()