Rumah > Artikel > pangkalan data > Bagaimanakah saya boleh Mencegah Entri Data Tidak Sah dalam Jadual MySQL Menggunakan Pencetus?
Mencegah Sisipan dan Kemas Kini dengan Pencetus dalam MySQL
Tidak seperti sistem pangkalan data lain, MySQL tidak menguatkuasakan kekangan semakan secara asli. Oleh itu, adalah perlu untuk meneroka kaedah alternatif untuk mengelakkan data tidak sah daripada memasuki jadual. Pencetus menyediakan mekanisme yang teguh untuk menangani isu ini.
Dalam contoh yang diberikan, kami ingin mengehadkan atribut agensi dalam jadual foo kepada nilai 1-5. Pendekatan naif akan melibatkan penciptaan pencetus yang menyemak nilai new.agency sebelum membenarkan sisipan atau kemas kini. Walau bagaimanapun, hanya mengabaikan sisipan atau kemas kini adalah tidak mencukupi.
Penyelesaian yang lebih berkesan melibatkan penggunaan sintaks SIGNAL. Dengan menimbulkan ralat (cth., SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'messej ralat anda'), anda boleh menghalang operasi daripada melaksanakan dan memberikan mesej ralat yang bermakna kepada pengguna.
Berikut ialah contoh yang dikemas kini untuk pencetus menggunakan sintaks ISYARAT:
create trigger agency_check before insert on foo for each row begin if (new.agency < 1 or new.agency > 5) then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Agency value must be between 1 and 5'; end if end
Pencetus ini akan menghalang sebarang percubaan dengan berkesan untuk memasukkan atau mengemas kini jadual foo dengan nilai agensi yang tidak sah.
Atas ialah kandungan terperinci Bagaimanakah saya boleh Mencegah Entri Data Tidak Sah dalam Jadual MySQL Menggunakan Pencetus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!