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
Lepaskan: 2024-12-01 08:59:14
asal
802 orang telah melayarinya

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 (...);
    Salin selepas log masuk
  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 (...);
    Salin selepas log masuk
  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;
    Salin selepas log masuk

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);
    Salin selepas log masuk

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

  • INSERT ABAIKAN:

    INSERT IGNORE INTO tbl (id, value) VALUES (1, 10);
    Salin selepas log masuk

    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;
    Salin selepas log masuk

    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!

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