单列中的两个约束
Two constraints in single column
我的 table 包含一个名为 'Email' 的列。现在我想要如果有人提供电子邮件,SQL 检查验证或者如果有人忘记提供电子邮件,SQL 保持默认值 'None'。
我该怎么做?
我不确定您使用的是哪个数据库。这将适用于 Postgresql。
在创建 table 时,像这样在电子邮件列上添加约束,
create table email_test
(email text check (email like '%@%.%' or email like 'NONE') default 'NONE');
如果table已经创建,
alter table email_test add constraint check_email check (email like '%@%%' or email like 'NONE');
但是如果有任何行违反指定的约束,这个 ALTER 将失败。
我的 table 包含一个名为 'Email' 的列。现在我想要如果有人提供电子邮件,SQL 检查验证或者如果有人忘记提供电子邮件,SQL 保持默认值 'None'。
我该怎么做?
我不确定您使用的是哪个数据库。这将适用于 Postgresql。
在创建 table 时,像这样在电子邮件列上添加约束,
create table email_test
(email text check (email like '%@%.%' or email like 'NONE') default 'NONE');
如果table已经创建,
alter table email_test add constraint check_email check (email like '%@%%' or email like 'NONE');
但是如果有任何行违反指定的约束,这个 ALTER 将失败。