Mencegah Kemas Kini Jadual MySQL dengan Pencetus
Dalam MySQL, adalah mungkin untuk mewujudkan pencetus yang diaktifkan sebelum kemas kini jadual. Pencetus ini memberi peluang untuk melaksanakan peraturan perniagaan atau semakan pengesahan. Jika mana-mana semakan ini gagal, anda mungkin mahu menghalang kemas kini daripada berlaku untuk mengekalkan integriti data.
Melempar Ralat Menggunakan Sintaks SIGNAL
MySQL 5.5 memperkenalkan SIGNAL sintaks, yang membolehkan pembangun membuang pengecualian dalam pencetus. Untuk membuang ralat dan menghentikan kemas kini, gunakan sintaks berikut:
SIGNAL sqlstate '45000' SET message_text = 'My Error Message';
Di mana '45000' mewakili keadaan untuk pengecualian yang ditakrifkan pengguna yang tidak dikendalikan.
Pelaksanaan Contoh
Pertimbangkan perkara berikut contoh:
CREATE TRIGGER trg_trigger_test_ins BEFORE INSERT ON trigger_test FOR EACH ROW BEGIN DECLARE msg VARCHAR(128); IF NEW.id < 0 THEN SET msg = CONCAT('MyTriggerError: Trying to insert a negative value in trigger_test: ', CAST(NEW.id AS CHAR)); SIGNAL SQLSTATE '45000' SET message_text = msg; END IF; END;
Dalam pencetus ini, sebelum memasukkan rekod, pencetus menyemak sama ada 'id' adalah negatif. Jika ya, mesej ralat tersuai dijana dan pengecualian dilemparkan menggunakan SIGNAL untuk menghalang sisipan daripada diteruskan.
Dengan menggunakan pendekatan ini, anda boleh menguatkuasakan kekangan data, memastikan pematuhan dengan peraturan perniagaan atau mengendalikan keadaan ralat tertentu dalam pangkalan data MySQL anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Kemas Kini Jadual MySQL Menggunakan Pencetus dan Pengendalian Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!