【发布时间】:2019-11-07 15:11:25
【问题描述】:
我正在使用 Dbeaver 创建 Postgres 数据库表,但在使用“GENERATED ALWAYS AS IDENTITY”作为递增的 id 值时出现语法错误。这很奇怪,因为我在本地主机上创建表时使用了完全相同的语法,并且没有任何语法错误或创建表的问题。
这是我尝试保存表时的 SQL 预览:
CREATE TABLE public.conversation (
id bigint NOT NULL GENERATED ALWAYS AS IDENTITY,
startdatetime timestamptz NOT NULL,
enddatetime timestamptz NOT NULL,
CONSTRAINT conversation_pk PRIMARY KEY (id)
);
当我尝试保存表格时,我收到“错误:'GENERATED' 处或附近的语法错误”。我认为这是正确的语法,因为 SQL 是由 Dbeaver 自己构建的,并且在创建本地数据库进行测试时工作正常?
【问题讨论】:
-
select version();向您展示了什么? -
@a_horse_with_no_name x86_64-pc-linux-gnu 上的 PostgreSQL 9.5.17,由 gcc 编译 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609, 64 位
-
身份列是在 Postgres 10 中引入的,您不能在(有些过时的)Postgres 9.5 中使用它们
-
@a_horse_with_no_name 那么我应该怎么做呢?
-
升级?或者使用
serial就像 Gordon 展示的那样
标签: sql postgresql auto-increment identity-column