Rumah  >  Artikel  >  pangkalan data  >  Bolehkah MySQL Menggunakan Ungkapan Biasa untuk Mengesahkan Data, Seperti Nombor Telefon?

Bolehkah MySQL Menggunakan Ungkapan Biasa untuk Mengesahkan Data, Seperti Nombor Telefon?

Patricia Arquette
Patricia Arquetteasal
2024-11-17 06:52:03843semak imbas

Can MySQL Use Regular Expressions to Validate Data, Like Phone Numbers?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn