我正在db2中创建数据库,我想添加一个约束来验证用户是否插入了包含%@%.%的有效电子邮件地址。没有运气…有什么建议吗?
您可以将LIKE与通配符一起使用。有关DB2上的通配符,请参见此处。
下划线字符(_)表示任何单个字符。 百分号字符(%)表示一个零个或多个字符的字符串。
下划线字符(_)表示任何单个字符。
百分号字符(%)表示一个零个或多个字符的字符串。
SELECT email FROM YourTable WHERE email NOT LIKE '%_@__%.__%'
这将忽略以下情况(有效电子邮件的简单版本):
您可以在sqlfiddle的MySql中看到一个示例。
要将其添加为约束,您可以执行此操作(如mustaccio在评论中所述):
alter table your_table add constraint chk_email check (email like '%_@__%.__%')