Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Mengendalikan Entri Pendua Semasa Kemasukan Massa dalam MySQL?
Apabila memasukkan berbilang rekod ke dalam pangkalan data dengan medan unik, pengendalian entri pendua menjadi perlu. Dalam PHP, anda mungkin menghadapi cabaran untuk mencegah ralat disebabkan oleh entri pendua.
Satu pendekatan ialah melakukan operasi SELECT sebelum setiap INSERT, menyemak kewujudan entri. Walau bagaimanapun, kaedah ini boleh menjadi tidak cekap untuk set data yang besar. Nasib baik, MySQL menawarkan beberapa penyelesaian untuk mengabaikan entri pendua semasa pemasukan.
Kaedah paling mudah ialah menggunakan sintaks INSERT...IGNORE. Ini mengarahkan MySQL untuk membuang entri pendua tanpa menimbulkan ralat. Contohnya:
INSERT IGNORE INTO tbl_name (field1, field2) VALUES (value1, value2);
Pilihan lain ialah GANTIKAN KE DALAM sintaks. Ini akan menimpa rekod sedia ada dengan kunci utama yang sama. Contohnya:
REPLACE INTO tbl_name (field1, field2) VALUES (value1, value2);
Akhir sekali, anda boleh menggunakan INSERT...ON DUPLICATE KEY UPDATE sintaks untuk melakukan kemas kini pada rekod sedia ada bukannya memasukkan pendua. Contohnya:
INSERT INTO tbl_name (field1, field2) VALUES (value1, value2) ON DUPLICATE KEY UPDATE field2 = value2;
Pertimbangkan jadual bernama tbl dengan dua lajur, id dan nilai. Dengan mengandaikan jadual pada mulanya mengandungi satu rekod dengan id=1 dan nilai=1, kod berikut menunjukkan kesan sintaks yang berbeza:
-- REPLACE INTO REPLACE INTO tbl VALUES (1, 50); -- INSERT IGNORE INSERT IGNORE INTO tbl VALUES (1, 10); -- INSERT...ON DUPLICATE KEY UPDATE INSERT INTO tbl VALUES (1, 200) ON DUPLICATE KEY UPDATE value = 200;
Selepas operasi ini, jadual mengandungi satu rekod dengan id= 1 dan nilai=200.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Entri Pendua Semasa Kemasukan Massa dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!