Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencegah Entri Pendua dalam Jadual MySQL Menggunakan Pencetus?
Latar Belakang:
Dalam senario ini, matlamatnya adalah untuk memastikan gabungan unik URL dan rentetan parameter mengekalkan keunikan dalam jadual MySQL. Walau bagaimanapun, panjang rentetan parameter melebihi had panjang kunci untuk MySQL, menghalang penggunaan kekangan kunci unik.
Pelaksanaan Pencetus:
Untuk menangani isu ini, pencetus boleh digunakan untuk menguatkuasakan kekangan keunikan. Kod pencetus menyemak entri pendua sebelum membenarkan operasi sisipan.
Mengendalikan Entri Pendua:
Kod pencetus termasuk dua bahagian kritikal:
Batalkan/Naikkan Pengecualian kepada C#:
Untuk membuang pengecualian apabila entri pendua dikesan, kod berikut boleh ditambah:
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Duplicate entry detected';
Penyelesaian Diperbaiki:
Penyelesaian yang lebih maju menggunakan fungsi SIGNAL MySQL, yang membenarkan mesej ralat tersuai dan pengecualian terperangkap. Pendekatan ini digariskan dalam kod yang disediakan:
CREATE TRIGGER `TestTable_SomeTrigger` BEFORE UPDATE ON `test_table` FOR EACH ROW BEGIN DECLARE msg VARCHAR(255); IF (SomeTestToFail = "FAIL!") THEN set msg = "DIE: You broke the rules... I will now Smite you, hold still..."; SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = msg; END IF; -- Do any other code here you may want to occur if it's all OK or leave blank it will be -- skipped if the above if is true END$$
Kaedah ini mengembalikan mesej ralat tersuai yang boleh dipintas dan dikendalikan dalam kod C#.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Entri Pendua dalam Jadual MySQL Menggunakan Pencetus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!