单列中的两个约束

时间:2018-09-19 16:28:21

标签: sql sql-server ddl

我的表包含名为“电子邮件”的列。现在,我想要是否有人提供电子邮件,SQL检查验证,或者是否有人忘记提供电子邮件,SQL保留默认值“无”。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

我不确定您正在使用哪个数据库。这将适用于Postgresql。

在创建表格时,像这样在电子邮件列上添加约束

create table email_test 
(email text  check (email like '%@%.%' or email like 'NONE') default 'NONE');

如果已创建表,

alter table email_test add constraint check_email check (email like '%@%%' or email like 'NONE');

但是,如果有任何行违反指定的约束,则此ALTER将会失败。