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

Bolehkah Pengesahan Data Menggunakan Ungkapan Biasa Dilaksanakan dalam MySQL?

DDD
DDDasal
2024-11-17 17:29:02379semak imbas

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$$

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!!! 

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!

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