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

TENTANG implementasi/desain UPDATE KUNCI DUPLICATE

Pertama, Anda memerlukan indeks unik di (usersessid, product_id) . Saya tidak yakin apakah Anda benar-benar menggunakan kolom yang dibuat secara otomatis id , tetapi jika tidak, Anda harus mengubah kunci utama menjadi (usersessid, product_id) . Kemudian alih-alih menjalankan UPDATE separate yang terpisah kueri, hanya jalankan satu INSERT permintaan:

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

Untuk memperjelas seperti apa seharusnya indeks unik tersebut:

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

Atau kunci utama:

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. PHP mengubah mysql_query lama menjadi PDO

  2. PERIOD_ADD() Contoh – MySQL

  3. PHP Menyisipkan data dari satu tabel ke tabel lainnya

  4. Gabungkan beberapa baris menjadi satu MySQL Join

  5. Menggabungkan beberapa baris menjadi satu baris dan beberapa kolom di mysql