如何将正则表达式添加到MySQL数据字段?

如何将正则表达式添加到MySQL数据字段?,mysql,regex,mysql-workbench,Mysql,Regex,Mysql Workbench,我有下表: Table Account{ [...] email varchar(100), [...] } 以及相应的正则表达式: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i 我如何使用MySQL模型,将正则表达式链接到数据字段“email”,以便可以通过php以及触发器(甚至更好)在某种约束下读取正则表达式 我想使用MySQL workbench直接定义它,所以单独的表对我来说不起作用。在我看来,像这样的输入验证实际上不

我有下表:

Table Account{
    [...]
    email varchar(100),
    [...]
}
以及相应的正则表达式:

/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
我如何使用MySQL模型,将正则表达式链接到数据字段“email”,以便可以通过php以及触发器(甚至更好)在某种约束下读取正则表达式


我想使用MySQL workbench直接定义它,所以单独的表对我来说不起作用。

在我看来,像这样的输入验证实际上不是数据库的任务。这些验证规则可能会更改。有朝一日,您甚至可以让用户对其进行配置。如果规则被隐藏在某个触发器的某个地方,这将变得非常困难

此外,您还需要处理应用程序级别的验证错误—显示某种消息


让PHP在mySQL中访问它们的最佳位置可能是一个列注释,您可以将它与
FULL
关键字一起使用。

谢谢您的建议。在评论中有一个共同的模式如何做这样的事情吗?我的第一个想法是在注释中存储一个JSON对象,以便以后能够扩展它。@Thomas我不知道有一个通用模式;类似JSON对象的东西听起来是个好主意。我找不到列的最大大小-可能先用一个非常大的值进行测试以避免出现问题