Rumah > pangkalan data > tutorial mysql > Bolehkah Pengesahan Data Menggunakan Ungkapan Biasa Dilaksanakan dalam MySQL?

Bolehkah Pengesahan Data Menggunakan Ungkapan Biasa Dilaksanakan dalam MySQL?

DDD
Lepaskan: 2024-11-17 17:29:02
asal
454 orang telah melayarinya

Can Data Validation Using Regular Expressions be Implemented in MySQL?

Bolehkah Pengesahan Data Menggunakan Ungkapan Biasa Dikuatkuasakan dalam MySQL?

Mengesahkan data adalah penting untuk memastikan integriti data. Ungkapan biasa (regex) menawarkan fleksibiliti dalam menentukan kekangan. Bolehkah MySQL memanfaatkan regex untuk pengesahan data?

Ya, MySQL menyokong regex untuk pengesahan data. Terutamanya, ia tidak menyokong kekangan CHECK untuk pengesahan data. Sebaliknya, pencetus harus digunakan.

Sebagai contoh, anda boleh membuat kekangan semak untuk lajur telefon menggunakan pencetus:

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 menyemak sama ada nombor telefon masuk sepadan dengan yang ditentukan ungkapan biasa. Jika ia tidak sepadan, ia menandakan ralat dan menetapkan mesej ralat tersuai.

INSERT INTO data VALUES ('+64-221221442'); -- should be OK
INSERT INTO data VALUES ('+64-22122 WRONG 1442'); -- will fail with the error: #1644 - Wroooong!!! 
Salin selepas log masuk

Walau bagaimanapun, bergantung sepenuhnya pada MySQL untuk pengesahan data tidak disyorkan. Data harus disahkan pada pelbagai peringkat aplikasi untuk integriti data yang optimum.

Atas ialah kandungan terperinci Bolehkah Pengesahan Data Menggunakan Ungkapan Biasa Dilaksanakan dalam MySQL?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan