【问题标题】:PostgreSQL autoincremented default value [duplicate]PostgreSQL自动增量默认值[重复]
【发布时间】:2012-11-30 16:53:11
【问题描述】:

可能重复:
Increment value of a table ID for each INSERT

我需要在一张表上设置 DEFAULT VALUE,

结构:

column1    |     column2     |   column3
-----------+-----------------+-------------
10001      |      chair      |     23
10002      |      lamp       |     10

如果我在哪里

INSERT INTO column2 和 column3 值(花瓶,30),column1 将自动递增值为 10003,并且每次都会递增 1 值。

有人可以帮我吗?

【问题讨论】:

    标签: sql database postgresql pgadmin


    【解决方案1】:

    您需要: 1) 创建一个序列。详情here

    CREATE SEQUENCE seq_name -- sequence name
    START 10003 -- value for the next row 
    

    2) 将nextval('seq_name') 设置为column1 列的默认值。详情here.

    ALTER TABLE table_name
    ALTER COLUMN column1
    SET DEFAULT nextval('seq_name');
    

    UPD SQLFiddle 示例。

    【讨论】:

    • +1 - 显然你可以在 postgreSQL 中做到这一点 - DB2(至少我的版本)只允许常量或某些“特殊寄存器”,而不是序列。尽管从概念上讲,大多数人可能会期望“自动生成”列,而不是“默认”值。
    猜你喜欢
    • 2013-07-03
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多