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

Patricia Arquette
Lepaskan: 2024-11-17 06:52:03
asal
842 orang telah melayarinya

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan