【问题标题】:How can I create enum with default value in postgres如何在 postgres 中创建具有默认值的枚举
【发布时间】:2014-12-15 10:33:00
【问题描述】:

我想在 postgres 中创建具有默认值的枚举类型,是的,我已经看到之前在这个枚举上提出的问题已经检查过了。或者请任何人都可以建议我如何完成以下表格结构 基本上我需要这样的

create type status as enum('pending','approved','declined'); //here i want default value to be set as pending.

如何在表格中完成此操作。我正在将 codeigniter 与 postgresql 一起使用。有什么建议吗?

【问题讨论】:

    标签: postgresql codeigniter enums


    【解决方案1】:

    默认值必须在表定义中:

    CREATE TYPE status AS ENUM ('pending', 'approved', 'declined');
    
    CREATE TABLE t (
        id serial,
        s status default 'pending' -- <==== default value
    );
    
    INSERT INTO t(id) VALUES (default) RETURNING *; -- show the result
    

    【讨论】:

    • 是的,这很好,谢谢弗兰克,但每当我试图像这样插入 t values(1,2);所以它应该得到批准吧?
    • 不,您会收到错误消息,因为值 2 不是正确的状态。尝试 INSERT INTO t VALUES(default), (default);列 id 是一个序列,默认使用的整数和序列的组合。如果您不想要序列,只需使用整数并插入您需要的值。
    • 如果我们不指定 'default 'pending' ','s' 列将采用什么值?会是空白吗?
    • 这个答案假定表是新的,而不是状态是现有表上的新列。
    • @rupali317 是的,应该是NULL
    猜你喜欢
    • 2013-11-21
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多