Menggugurkan Operasi INSERT dalam Pencetus MySQL: Mencapai Kekangan Unik pada Pasangan Parameter URL
Untuk menguatkuasakan keunikan pada gabungan URL dan rentetan parameter dalam jadual MySQL, pencetus boleh digunakan. Walau bagaimanapun, membatalkan operasi sisipan dalam pencetus untuk mengelakkan entri pendua memerlukan pengendalian khusus. Artikel ini membimbing anda melalui langkah-langkah untuk membuang pengecualian dan membenarkan sisipan secara bersyarat dalam pencetus anda.
Melempar Pengecualian ke C#
Untuk menandakan ralat kemasukan pendua kepada kod C# , anda boleh menggunakan pernyataan SIGNAL MySQL dalam pencetus. Di bawah ialah coretan kod yang dikemas kini untuk pencetus urls_check_duplicates:
CREATE TRIGGER urls_check_duplicates BEFORE INSERT ON urls FOR EACH ROW BEGIN DECLARE num_rows INTEGER; SELECT COUNT(*) INTO num_rows FROM urls WHERE url = NEW.url AND params = NEW.params; IF num_rows > 0 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Duplicate URL-parameter pair found'; ELSE ... Allow insert ... END
Dalam kod C# anda, anda boleh mengendalikan ralat yang dilemparkan oleh pencetus menggunakan kelas MySqlException:
try { // Execute INSERT statement } catch (MySqlException ex) { if (ex.Message.Contains("Duplicate URL-parameter pair found")) { // Handle duplicate entry error } }
Elaun Sisipan Bersyarat
Untuk membenarkan sisipan hanya jika tiada entri pendua, hanya keluarkan blok ELSE dalam kod pencetus. Kod berikut hanya memasukkan pasangan URL-parameter yang unik:
CREATE TRIGGER urls_check_duplicates BEFORE INSERT ON urls FOR EACH ROW BEGIN DECLARE num_rows INTEGER; SELECT COUNT(*) INTO num_rows FROM urls WHERE url = NEW.url AND params = NEW.params; IF num_rows > 0 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Duplicate URL-parameter pair found'; END
Dengan menggunakan gabungan pelaksanaan SIGNAL dan bersyarat dalam pencetus, anda boleh menguatkuasakan kekangan unik pada pasangan parameter URL dalam jadual MySQL anda dengan berkesan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Pencetus MySQL untuk Menguatkuasakan Keunikan pada Pasangan Parameter URL dan Mengendalikan Entri Pendua dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!