Rumah >pangkalan data >tutorial mysql >Bagaimana Mengendalikan Entri Pendua dengan Cekap Semasa Sisipan MySQL dalam PHP?

Bagaimana Mengendalikan Entri Pendua dengan Cekap Semasa Sisipan MySQL dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-01 08:59:14879semak imbas

How to Efficiently Handle Duplicate Entries During MySQL Inserts in PHP?

MySQL - Abaikan Sisipan Entri Duplikat

Senario: Memasukkan Rekod Unik Tanpa Ralat

Dalam PHP, apabila memasukkan sekumpulan rekod ke dalam pangkalan data dengan medan yang unik, adalah wajar untuk mengabaikan ralat masukan pendua. Sebaliknya, anda ingin memastikan bahawa hanya rekod baharu dimasukkan tanpa sebarang gangguan.

Mengelakkan Pemeriksaan SELECT-INSERT

Melakukan pertanyaan SELECT untuk menyemak entri sedia ada sebelum memasukkan bukanlah pendekatan yang cekap. Berikut ialah kaedah alternatif menggunakan kefungsian terbina dalam MySQL:

  1. INSERT... ABAIKAN:

    Sintaks ini membolehkan anda memasukkan rekod dan abaikan jika pendua sudah wujud. Tiada ralat akan dilemparkan.

    INSERT IGNORE INTO tbl (field1, field2, ...) VALUES (...);
  2. GANTIKAN KE:

    Sintaks ini menimpa rekod sedia ada dengan rekod baharu jika kunci utama perlawanan. Ralat akan ditimbulkan jika kunci utama tidak unik.

    REPLACE INTO tbl (field1, field2, ...) VALUES (...);
  3. MASUKKAN... PADA KEMASKINI KUNCI PENDULIK:

    Ini sintaks memasukkan rekod baharu atau melakukan kemas kini jika kunci utama pendua adalah dijumpai.

    INSERT INTO tbl (field1, field2, ...) VALUES (...) ON DUPLICATE KEY UPDATE field2 = NEW.field2;

Contoh

Dengan mengandaikan jadual bernama 'tbl' dengan lajur 'id' dan 'value', pada mulanya mengandungi rekod dengan 'id' = 1 dan 'nilai' = 1:

  • GANTIKAN INTO:

    REPLACE INTO tbl (id, value) VALUES (1, 50);

    Keputusan: Mengganti rekod sedia ada dengan 'nilai' = 50.

  • INSERT ABAIKAN:

    INSERT IGNORE INTO tbl (id, value) VALUES (1, 10);

    Keputusan: Abaikan entri pendua kerana 'id' 1 sudah wujud.

  • INSERT... PADA KEMASKINI KUNCI DUA:

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

    Keputusan: Mengemas kini rekod sedia ada dengan 'nilai' = 200 memandangkan 'id' 1 sudah wujud.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Entri Pendua dengan Cekap Semasa Sisipan MySQL dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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