我的表包含名为“电子邮件”的列。现在,我想要是否有人提供电子邮件,SQL检查验证,或者是否有人忘记提供电子邮件,SQL保留默认值“无”。
我该怎么做?
答案 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将会失败。