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

时间:2010-09-16 22:34:11

标签: mysql regex mysql-workbench

我有下表:

Table Account{
    [...]
    email varchar(100),
    [...]
}

和相应的正则表达式:

/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i

如何使用MySQL模型,将正则表达式链接到数据字段“email”,以便可以通过php以及触发器或更好的方式读取正则表达式,约束?

我想使用MySQL工作台直接定义它,因此单独的表对我不起作用。

1 个答案:

答案 0 :(得分:2)

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

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

在mySQL中使 PHP 可访问的最佳位置可能是列注释,您可以使用SHOW COLUMNSFULL关键字一起获取。