我正在 db2 中创建一个数据库,我想添加一个约束来验证用户是否插入包含 %@%.% 的有效电子邮件地址。没有运气...有什么建议吗?
您可以将 LIKE 与通配符一起使用。看here http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/c0011568.htmDB2 上的通配符。
下划线字符 (_) 表示任何单个字符。
百分号字符 (%) 表示零个或多个字符的字符串。
SELECT email
FROM YourTable
WHERE email NOT LIKE '%_@__%.__%'
这将忽略以下情况(有效电子邮件的简单版本):
- @ 之前至少有一个字符的电子邮件;
- @ 和 . 之间至少有两个字符的电子邮件;
- 之间至少有两个字符的电子邮件。和结束。
您可以在 MySql 中查看示例sqlfiddle http://sqlfiddle.com/#!9/026c7/1.
要将其添加为约束,您可以执行以下操作(正如 Mustaccio 在评论中所说):
alter table your_table add constraint chk_email check (email like '%_@__%.__%')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)