Bolehkah Ungkapan Biasa Mengesahkan Data dalam MySQL?
Menguatkuasakan kesahihan data adalah penting untuk memastikan integriti entri pangkalan data. Satu atribut sedemikian, nombor telefon, memerlukan pematuhan kepada format tertentu. Bolehkah MySQL menggunakan ungkapan biasa untuk menguatkuasakan kekangan sedemikian?
Menggunakan Ungkapan Biasa untuk Penyemakan Data
Ya, MySQL menyokong ungkapan biasa (regex) untuk pengesahan data. Tidak seperti kekangan CHECK, MySQL membenarkan anda melaksanakan semakan data melalui pencetus.
Untuk menentukan kekangan semakan bagi lajur "telefon" menggunakan regex, pernyataan SQL berikut boleh digunakan:
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
Pencetus ini mengesahkan bahawa nombor telefon mematuhi format yang ditentukan. Walau bagaimanapun, walaupun terdapat kekangan CHECK dalam MySQL, mereka tetap tidak disokong untuk pengesahan data.
Pertimbangan Tambahan
Walaupun MySQL menyediakan keupayaan menyemak data melalui pencetus dan regex, ia adalah penting untuk mengiktiraf bahawa pengesahan data tidak seharusnya bergantung pada lapisan data semata-mata. Pengesahan data yang komprehensif harus dilaksanakan pada pelbagai peringkat aplikasi untuk memastikan integriti data di seluruh sistem.
Atas ialah kandungan terperinci Bolehkah MySQL Menggunakan Ungkapan Biasa untuk Mengesahkan Data, Seperti Nombor Telefon?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!