Cara Mengendalikan Ralat Kemasukan Pendua dalam MySQL: INSERT...ABAIKAN, GANTIKAN KE DALAM, atau INSERT...PADA KEMASKINI KUNCI DUA?

Linda Hamilton
Lepaskan: 2024-10-27 13:42:29
asal
325 orang telah melayarinya

How to Handle Duplicate Entry Errors in MySQL: INSERT...IGNORE, REPLACE INTO, or INSERT...ON DUPLICATE KEY UPDATE?

Mengabaikan Ralat Kemasukan Pendua dalam MySQL

Sisipan pangkalan data kadangkala boleh mengakibatkan ralat kemasukan pendua apabila cuba menambah rekod dengan pengecam unik. MySQL menyediakan beberapa alternatif untuk mengendalikan ralat tersebut.

Satu pilihan ialah menggunakan sintaks INSERT...IGNORE, yang menghalang penjanaan ralat sekiranya berlaku entri pendua. Ia hanya melangkau sisipan tanpa sebarang pemberitahuan.

Pendekatan lain ialah menggunakan REPLACE INTO, yang menggantikan rekod sedia ada dengan nilai kunci yang sama. Daripada mengabaikan sisipan, ia akan menimpa rekod lama dengan rekod baharu.

Akhir sekali, INSERT...PADA KEMASKINI KUNCI PENDULIK membolehkan operasi kemas kini dilakukan pada pertemuan kunci pendua. Ini bermakna daripada cuba memasukkan rekod baharu, MySQL akan mengemas kini rekod sedia ada dengan nilai yang disediakan.

Contoh:

Pertimbangkan jadual bernama tbl dengan lajur id dan nilai. Pada mulanya, ia mengandungi satu entri: id=1 dan nilai=1. Menjalankan penyataan berikut menunjukkan kelakuan setiap sintaks:

  • GANTIKAN KE DALAM tbl VALUES(1,50);: Mengemas kini rekod sedia ada, menghasilkan id=1 dan value=50.
  • MASUKKAN ABAIKAN KE DALAM NILAI tbl (1,10);: Menyisipkan apa-apa, kerana kunci pendua wujud.
  • MASUKKAN KE DALAM NILAI tbl (1,200) PADA nilai KEMASKINI KUNCI DUA=200;: Mengemas kini rekod sedia ada, menghasilkan id=1 dan nilai=200.

Atas ialah kandungan terperinci Cara Mengendalikan Ralat Kemasukan Pendua dalam MySQL: INSERT...ABAIKAN, GANTIKAN KE DALAM, atau INSERT...PADA KEMASKINI KUNCI DUA?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!