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

INSERT INTO ... ON DUPLICATE UPDATE semua nilai

INSERT INTO … ON DUPLICATE KEY UPDATE bekerja dengan cara ini:

  • ia mencoba menyisipkan baris seperti biasa
  • jika terjadi pelanggaran batasan di kolom mana pun, ia akan mengeksekusi UPDATE pernyataan sebagai gantinya pada baris yang ada dengan yang INSERT pernyataan bentrok

Itu berarti jika UPDATE pernyataan saja akan berhasil, ON DUPLICATE KEY UPDATE setara juga akan bekerja. Itu berarti Anda jelas tidak dapat melanggar batasan apa pun dalam UPDATE pernyataan baik, atau semuanya akan gagal (misalnya mencoba menetapkan nilai pada UNIQUE kolom yang sudah ada di baris lain).

Jika Anda menetapkan nilai yang sama pada kolom yang sama lagi, itu pada dasarnya adalah larangan. Nilai di kolom tidak berubah dan karenanya juga tidak dapat menyebabkan kesalahan (anggaplah Anda tidak memiliki BEFORE UPDATE yang benar-benar funky pemicu yang dapat berperilaku buruk). Jumlah kolom tidak relevan di sini, Anda dapat mengubah sebanyak atau sesedikit mungkin dalam satu pernyataan sesuka Anda.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ekspor Sqoop ke alat pekerjaan ekspor MySQL gagal.ExportTool tetapi mendapat catatan

  2. Metode yang disukai untuk Tampilan Terwujud (Tabel Ringkasan) dengan MySQL

  3. INSERT IGNORE atau INSERT WHERE NOT IN

  4. Ubah stempel waktu menjadi tanggal dalam kueri MySQL

  5. Cara mendapatkan komentar kolom dari SQL