【问题标题】:Specifying default value for a field for table creation in postgresql在 postgresql 中为创建表的字段指定默认值
【发布时间】:2015-08-17 17:52:46
【问题描述】:

以下是我的餐桌设计:

CREATE TABLE "x"."y"(
    "z" timestamp NOT NULL,
    "a" Timestamp NOT NULL DEFAULT z + 18 months,
)
WITH (OIDS=FALSE)
;

如何指定'a'的默认值?

我可以在创建表时指定吗?

【问题讨论】:

  • 我已恢复您对该问题的编辑,因为它实际上是一个全新的问题,并使现有的、已接受的答案无效,这对未来的读者来说会非常混乱。可以创建一个新问题作为后续问题,并链接回该问题以解释联系。
  • 对此表示感谢和抱歉。如果您让我提出一个新问题会很有帮助,因为我的旧编辑现已丢失。
  • 不要惊慌,它们并没有丢失,如果您单击“5 分钟前编辑”标签,则可以查看修订历史记录。这应该带您到this page,您可以在其中看到恢复的版本。然后你可以得到the raw source of that revision

标签: database postgresql timestamp default-value


【解决方案1】:

正如 postgresql 文档所述

DEFAULT 子句为其列定义所在的列分配默认数据值。该值是任何无变量表达式(不允许对当前表中的其他列进行子查询和交叉引用)。默认表达式的数据类型必须与列的数据类型匹配。

最好使用例如规则 (http://www.postgresql.org/docs/9.4/static/rules-update.html)

【讨论】:

  • 谢谢。请告诉我如何指定 18 个月。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 2019-04-21
  • 2019-07-13
相关资源
最近更新 更多