MySQL中可以实现正则表达式的数据验证吗?

DDD
发布: 2024-11-17 17:29:02
原创
385 人浏览过

Can Data Validation Using Regular Expressions be Implemented in MySQL?

MySQL 中可以强制使用正则表达式进行数据验证吗?

验证数据对于确保数据完整性至关重要。正则表达式 (regex) 提供了定义约束的灵活性。 MySQL 可以利用正则表达式进行数据验证吗?

是的,MySQL 支持正则表达式进行数据验证。值得注意的是,它不支持数据验证的 CHECK 约束。相反,应该使用触发器。

例如,您可以使用触发器为电话列创建检查约束:

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$$
登录后复制

此触发器检查传入的电话号码是否与指定的匹配正则表达式。如果不匹配,则会发出错误信号并设置自定义错误消息。

INSERT INTO data VALUES ('+64-221221442'); -- should be OK
INSERT INTO data VALUES ('+64-22122 WRONG 1442'); -- will fail with the error: #1644 - Wroooong!!! 
登录后复制

但是,不建议仅依赖 MySQL 进行数据验证。应在应用程序的多个级别验证数据,以实现最佳数据完整性。

以上是MySQL中可以实现正则表达式的数据验证吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板