我正在使用 postgreSQL。我有一个专栏:
NOT NULL
但是,当我想插入一行空字符串时,如下所示:
''
它不会给我一个错误并接受。如何检查插入值应该是not empty
?(既不为空也不为空)
PS:我的专栏定义为:
"ads" character varying(60) NOT NULL
我正在使用 postgreSQL。我有一个专栏:
NOT NULL
但是,当我想插入一行空字符串时,如下所示:
''
它不会给我一个错误并接受。如何检查插入值应该是not empty
?(既不为空也不为空)
PS:我的专栏定义为:
"ads" character varying(60) NOT NULL
向列定义添加约束。例如:
ads character varying(60) NOT NULL CHECK (ads <> '')
有关更多信息,请参阅http://www.postgresql.org/docs/current/static/ddl-constraints.html
在postgreSQL的当前文档中找到,您可以执行以下操作来实现您想要的:
CREATE TABLE distributors (
did integer PRIMARY KEY DEFAULT nextval('serial'),
name varchar(40) NOT NULL CHECK (name <> '')
);
从文档中:
CHECK ( expression )
CHECK 子句指定一个产生布尔结果的表达式,新的或更新的行必须满足该结果才能使插入或更新操作成功。计算结果为 TRUE 或 UNKNOWN 的表达式成功。如果插入或更新操作的任何行产生 FALSE 结果,则会引发错误异常,并且插入或更新不会改变数据库。指定为列约束的检查约束应仅引用该列的值,而出现在表约束中的表达式可能引用多个列。
目前,CHECK 表达式不能包含子查询,也不能引用当前行列以外的变量。