Menguatkuasakan Pengesahan Data dengan Ungkapan Biasa dalam MySQL
Bolehkah MySQL menggunakan ungkapan biasa untuk memastikan integriti data, terutamanya dalam kes di mana medan seperti 'nombor telefon' memerlukan parameter pengesahan khusus?
Ya, MySQL menawarkan keupayaan menggunakan ungkapan biasa untuk pengesahan data. Tidak seperti kekangan SEMAK terhad, MySQL menggunakan pencetus untuk menguatkuasakan ketekalan data. Dengan melaksanakan pencetus, anda boleh menentukan kekangan ungkapan biasa, memastikan data mematuhi kriteria yang telah ditetapkan.
Berikut ialah contoh praktikal:
Untuk menguatkuasakan pengesahan nombor telefon menggunakan ungkapan biasa (Sebagai contoh, nombor hendaklah dalam format 64-221221442):
CREATE TABLE data ( phone varchar(100) ); DELIMITER $$ CREATE TRIGGER trig_phone_check BEFORE INSERT ON data FOR EACH ROW BEGIN IF (NEW.phone REGEXP '^(\+?[0-9]{1,4}-)?[0-9]{3,10}$' ) = 0 THEN SIGNAL SQLSTATE '12345' SET MESSAGE_TEXT = 'Wroooong!!!'; END IF; END$$ DELIMITER ;
Dengan adanya pencetus ini, sebarang percubaan untuk memasukkan nombor telefon yang tidak mematuhi format yang ditentukan (cth. 64-22122 WRONG 1442) akan mencetuskan ralat, menghalang data yang salah daripada memasuki pangkalan data.
Walaupun MySQL mendayakan mekanisme pengesahan sedemikian, adalah penting untuk diingat bahawa pengesahan data tidak seharusnya bergantung pada lapisan pangkalan data semata-mata. Mekanisme pengesahan yang komprehensif harus dilaksanakan sepanjang aplikasi pada pelbagai peringkat.
Atas ialah kandungan terperinci Bolehkah MySQL Menggunakan Ungkapan Biasa untuk Mengesahkan Nombor Telefon?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!