考虑下表:
CREATE TABLE user(
first_name text,
last_name text,
...
)
我希望能够添加名字,姓氏或两者的用户 - 但我不允许没有任何名字的用户。换句话说(谢谢@wildplasser) - 至少有一列不应该是NULL。
INSERT INTO user(first_name, last_name) VALUES ("foo", NULL); # 1. OK
INSERT INTO user(first_name, last_name) VALUES ("foo", "bar"); # 2. OK
INSERT INTO user(first_name, last_name) VALUES (NULL, "bar"); # 3. OK
INSERT INTO user(first_name, last_name) VALUES (NULL, NULL); # 4. NOT OK
显然,每列上的NOT NULL
约束会禁用示例2和3。
如何在SQL中的一组列上表达NOT NULL
约束?
答案 0 :(得分:1)
CREATE TABLE user(
first_name text,
last_name text,
...,
CHECK (first_name IS NOT NULL OR last_name IS NOT NULL)
)
答案 1 :(得分:0)
您可以使用查询
例如像这样
INSERT INTO user(first_name) VALUES (NULL);
当数据库架构设置列lastname
允许NULL
lastname
将为NULL
希望有所帮助 感谢