Not Null约束指定了一列不能包含 NULL 值。

细节

举个例子,如果表foo有列ab(并且b没有设置默认值),当你执行一下命令时:

> INSERT INTO foo (a) VALUES (1);

CockroachDB尝试将b设置为null,如果该列有Not Null 约束,则该语句会执行失败。

语法

你只能在单独的列上设置Not Null约束。 图片

Parameter Description
table_name 表名
column_name 添加约束的列的名称
column_type 受约束列的数据类型
column_constraints 要应用于此列的任何其他列级约束。
column_def 表中任何其他列的定义。
table_constraints 要应用的任何表级约束。

用法示例

> CREATE TABLE IF NOT EXISTS customers (
    customer_id INT         PRIMARY KEY,
    cust_name   STRING(30)  NULL,
    cust_email  STRING(100) NOT NULL
  );

> INSERT INTO customers (customer_id, cust_name, cust_email) VALUES (1, 'Smith', NULL);
pq: null value in column "cust_email" violates not-null constraint
> INSERT INTO customers (customer_id, cust_name) VALUES (1, 'Smith');
pq: null value in column "cust_email" violates not-null constraint

See Also