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

MYSQL INSERT atau UPDATE JIKA

Pertama, tambahkan UNIQUE batasan nama, kode batang, barang, lokasi, dan harga.

ALTER TABLE  tableX
  ADD CONSTRAINT tableX_UQ
    UNIQUE (name, barcode, item, location, price) ;

Kemudian Anda dapat menggunakan INSERT INTO ... ON DUPLICATE KEY UPDATE :

INSERT INTO tableX
  (name, barcode, item, location, price, quantity, date)
VALUES
  (?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
  quantity = CASE WHEN VALUES(date) > date
               THEN quantity + VALUES(quantity)        -- add quantity
               ELSE quantity                           -- or leave as it is
             END
, date = CASE WHEN VALUES(date) > date
               THEN VALUES(date) ;                     -- set date to new date
               ELSE date                               -- or leave as it is
             END 

REPLACE juga dapat digunakan tetapi ada perbedaan dalam perilaku (yang terutama penting jika Anda memiliki kunci asing). Untuk detailnya, lihat pertanyaan ini “INSERT IGNORE ” vs “MASUKKAN … PADA PEMBARUAN KUNCI DUPLICATE” dan jawaban dari @Bill Kawin yang membahas perbedaan antara INSERT IGNORE , INSERT ... ON DUPLICATE KEY dan REPLACE .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya menyimpan dan mengambil gambar di server saya di aplikasi web java

  2. Tambahkan indeks FULLTEXT di Doctrine 2 menggunakan anotasi?

  3. Kata yang dicadangkan dalam nama kolom - masukkan ke MySQL

  4. Tabel MySQL dengan beberapa nilai dalam satu bidang

  5. Saran untuk membuat cadangan situs php dan mysql db