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

MySQL - abaikan kesalahan penyisipan:entri duplikat

Anda dapat menggunakan INSERT... IGNORE sintaks jika Anda tidak ingin mengambil tindakan saat ada rekaman duplikat.

Anda dapat menggunakan GANTI KE sintaks jika Anda ingin menimpa catatan lama dengan yang baru dengan kunci yang sama.

Atau, Anda dapat menggunakan INSERT... ON DUPLICATE PEMBARUAN KUNCI sintaks jika Anda ingin melakukan pembaruan pada catatan sebagai gantinya ketika Anda menemukan duplikat.

Sunting:Saya pikir saya akan menambahkan beberapa contoh.

Contoh

Katakanlah Anda memiliki tabel bernama tbl dengan dua kolom, id dan value . Ada satu entri, id=1 dan value=1. Jika Anda menjalankan pernyataan berikut:

REPLACE INTO tbl VALUES(1,50);

Anda masih memiliki satu catatan, dengan id=1 nilai=50. Perhatikan bahwa seluruh catatan telah DIHAPUS terlebih dahulu, dan kemudian dimasukkan kembali. Kemudian:

INSERT IGNORE INTO tbl VALUES (1,10);

Operasi berhasil dijalankan, tetapi tidak ada yang dimasukkan. Anda masih memiliki id=1 dan nilai=50. Akhirnya:

INSERT INTO tbl VALUES (1,200) ON DUPLICATE KEY UPDATE value=200;

Anda sekarang memiliki satu record dengan id=1 dan value=200.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kinerja MySQL:Mengidentifikasi Pertanyaan Panjang

  2. PDO::fetchAll vs. PDO::fetch dalam satu lingkaran

  3. Tidak semua parameter digunakan dalam pernyataan SQL (Python, MySQL)

  4. Apa perbedaan antara INNER JOIN, LEFT JOIN, RIGHT JOIN dan FULL JOIN?

  5. JSON_VALID() – Tes untuk JSON yang Valid di MySQL