she*_*tka 4 sql postgresql constraints
对于明天的测试,我们被告知要命名我们的约束,我知道当您使用 ALTER TABLE 时可以创建一个约束,但是您可以在创建 TABLE 时为非空约束添加一个名称吗?
铁
CREATE TABLE test (
test1 VARCHAR
CONSTRAINT nn_test1 NOT NULL (test1)
)
Run Code Online (Sandbox Code Playgroud)
尝试运行此查询时出现错误。我写错了吗?
我得到的错误是
Run Code Online (Sandbox Code Playgroud)ERROR: syntax error at or near "NOT" LINE 3: CONSTRAINT nn_test1 NOT NULL (test1)) ^ SQL state: 42601 Character: 56
您有两个选项可以定义命名的非空约束:
与列内联:
CREATE TABLE test
(
test1 VARCHAR CONSTRAINT nn_test1 NOT NULL,
test2 integer --<< no comma because it's the last column
);
Run Code Online (Sandbox Code Playgroud)
或者在列的末尾作为外部约束。但是你需要一个检查约束:
CREATE TABLE test
(
test1 VARCHAR,
test2 integer, --<< comma required after the last column
constraint nn_test1 check (test1 is not null)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3795 次 |
| 最近记录: |