34
  types = { # add your custom types here
          'attendance': ('Notconfirmed','Coming', 'Notcoming', 'Maycome',),
          }

  CREATE TYPE attendance AS ENUM types;

上面的查询使用类型中提到的枚举标签创建枚举类型出勤。如何创建具有默认标签的类型?在这种情况下,我想使用默认值未确认创建出勤类型。

4

3 回答 3

79

我和你一样尝试,我只在 stackoverflow 中得到了答案,可以使用默认值创建 ENUM。这是我为你准备的。

CREATE TYPE status AS ENUM ('Notconfirmed','Coming', 'Notcoming', 'Maycome');

CREATE TABLE t (
    id serial,
    s status default 'Notconfirmed' -- <==== default value
);

INSERT INTO t(id) VALUES (default) RETURNING *; 

这对我来说就像一个魅力。

于 2014-12-15T10:54:24.820 回答
6

除了苏达山的话……

如果有人需要不同模式的示例:

CREATE TABLE schema_name.table_name ( -- 
    id serial,
    s schema_name.type_name default 'Notconfirmed'::schema_name.type_name
);
于 2017-09-26T07:01:36.890 回答
-1

我不确定为什么我们需要在表中包含以下查询。我试过没有这条线仍然有效。

INSERT INTO t(id) VALUES (default) RETURNING *;
于 2018-07-23T04:25:08.237 回答