kam*_*aci 12 sql postgresql notnull
我正在使用postgreSQL.我有一个专栏:
NOT NULL
Run Code Online (Sandbox Code Playgroud)
但是当我想插入一个空字符串的行时:
''
Run Code Online (Sandbox Code Playgroud)
它不会给我一个错误并接受.我该如何检查插入值应该是not empty多少?(既不是空的也不是空的)
PS:我的专栏定义为:
"ads" character varying(60) NOT NULL
Run Code Online (Sandbox Code Playgroud)
Avo*_*ägi 18
向列定义添加约束.例如:
ads character varying(60) NOT NULL CHECK (ads <> '')
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅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 <> '')
);
Run Code Online (Sandbox Code Playgroud)
从文档:
CHECK ( expression )CHECK子句指定一个表达式,该表达式产生一个布尔结果,新的或更新的行必须满足这些结果才能使插入或更新操作成功.表达式评估为TRUE或UNKNOWN成功.如果插入或更新操作的任何行产生FALSE结果,则会引发错误异常,并且插入或更新不会更改数据库.指定为列约束的检查约束应仅引用该列的值,而出现在表约束中的表达式可引用多个列.
目前,CHECK表达式不能包含子查询,也不能引用当前行的列以外的变量.
| 归档时间: |
|
| 查看次数: |
18989 次 |
| 最近记录: |