我到处寻找一个体面的和合乎逻辑的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 '%_@%_._%')
如果这是验证电子邮件的最有效方式,有人可以告诉我吗?
你可以试试这个
email varchar2(255) check (
email LIKE '%@%.%' AND email NOT LIKE '@%' AND email NOT LIKE '%@%@%' )