检查Oracle数据库中电子邮件的约束

问题描述 投票:1回答:1

我到处寻找一个体面的和合乎逻辑的CHECK约束来验证电子邮件的格式是否合适。到目前为止,我发现了很长很多不必要的表达方式:

create table t (
email varchar2(320) check (
regexp_like(email, '[[:alnum:]]+@[[:alnum:]]+\.[[:alnum:]]')
 )
);

create table stk_t (
email varchar2(320) check (
email LIKE '%@%.%' AND email NOT LIKE '@%' AND email NOT LIKE '%@%@%'
 )
);

当然有一种更简单的方法吗?我正在使用Oracle 11g数据库和SQL Developer IDE。这就是我所拥有的:

constraint Emails_Check check (Emails LIKE '%_@%_._%')

如果这是验证电子邮件的最有效方式,有人可以告诉我吗?

sql regex oracle constraints email-validation
1个回答
1
投票

你可以试试这个

email varchar2(255) check (
email LIKE '%@%.%' AND email NOT LIKE '@%' AND email NOT LIKE '%@%@%'   )
© www.soinside.com 2019 - 2024. All rights reserved.