【发布时间】:2020-09-04 09:01:44
【问题描述】:
我想创建一个表,其中的列具有 UNIQUE 约束和 DEFAULT NULL,请参阅下面代码 sn-p 中的 annotation_id 列。这在 Postgres 中有效,但在 H2 中失败,但根据文档,它应该有效 (http://www.h2database.com/html/grammar.html#column_definition)。
这是 DDL 脚本:
CREATE TABLE highlights (
id bigserial PRIMARY KEY NOT NULL,
user_ref_id uuid,
body varchar(10000) DEFAULT NULL,
annotation_id integer UNIQUE DEFAULT NULL
);
这是我得到的错误:
Syntax error in SQL statement "CREATE TABLE HIGHLIGHTS2 (
ID BIGSERIAL PRIMARY KEY NOT NULL,
USER_REF_ID UUID,
BODY VARCHAR(10000) DEFAULT NULL,
ANNOTATION_ID INTEGER UNIQUE DEFAULT[*] NULL
)"; expected "NOT, NULL, COMMENT, CHECK, REFERENCES, ,, )"; SQL statement:
CREATE TABLE highlights2 (
id bigserial PRIMARY KEY NOT NULL,
user_ref_id uuid,
body varchar(10000) DEFAULT NULL,
annotation_id integer UNIQUE DEFAULT NULL
) [42001-200] 42001/42001
根据这里的这个帖子,这应该是可能的:https://groups.google.com/g/h2-database/c/HrYKGMN2LPQ?pli=1
H2 已经在唯一约束中支持 NULL。
我错过了什么?
【问题讨论】:
标签: null constraints unique h2 default