如何使用默认值创建枚举字段?

时间:2013-11-09 13:54:37

标签: postgresql postgresql-9.1

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

  CREATE TYPE attendance AS ENUM types;

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

3 个答案:

答案 0 :(得分:41)

我和你一样尝试,我只在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 *; 

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

答案 1 :(得分:2)

除了Sudarshan的话......

如果有人需要不同架构中的示例:

CREATE TABLE schema_name.table_name ( -- 
    id serial,
    s schema_name.type_name default 'Notconfirmed'::schema_name.type_name
);

答案 2 :(得分:0)

我不确定为什么我们需要在表中进行以下查询。我尝试过不使用此行仍然有效。

INSERT INTO t(id) VALUES (default) RETURNING *;
相关问题