我的印象是,每个 PostgreSQL 表都有一个与之关联的相应复合类型。但是似乎不能在CREATE TYPE
语句中使用 PostgreSQL 标识列:
=> CREATE TYPE _t_type AS (id bigint GENERATED ALWAYS AS IDENTITY);
ERROR: syntax error at or near "GENERATED"
LINE 1: CREATE TYPE _t_type AS (id bigint GENERATED ALWAYS AS IDENTI...
^
, 虽然它可以用于CREATE TABLE
:
=> CREATE TABLE _t_table (id bigint GENERATED ALWAYS AS IDENTITY);
CREATE TABLE
CREATE TYPE
是否存在不能或不应该在语句中使用标识列的根本原因?
(这是 PostgreSQL 14 beta1)。