【问题标题】:PostgreSQL No Auto Increment function?PostgreSQL 没有自动增量功能?
【发布时间】:2011-08-14 07:24:29
【问题描述】:

我有一个用 Java 编码的测试应用程序,用于在 MySQL、PostgreSQL、Oracle 和 Firebird 数据库中创建索引表和非索引表(除其他外)。

这仅仅是 PostgreSQL 不允许自动增量功能的情况吗?如果没有,建立索引列的正常程序是什么?

提前致谢

【问题讨论】:

    标签: database postgresql


    【解决方案1】:

    您可以在 PostgreSQL 中使用SERIAL 来生成自增字段,

    例如:-

    CREATE TABLE user (
    userid SERIAL PRIMARY KEY,
    username VARCHAR(16) UNIQUE NOT NULL
    )
    

    这将创建用户 ID 作为索引的自动增量主键。 如果您不想将其作为主键,只需删除 PRIMARY KEY。

    【讨论】:

      【解决方案2】:

      使用SERIAL 类型的列。它的工作方式与其他一些数据库上的AUTOINCREMEMT 相同。 (查看文档以了解您可以使用的其他功能。)

      【讨论】:

        【解决方案3】:

        使用当前的 Postgres,您可以只使用 SERIAL 作为列类型。

        对于旧版本的 Postgres,您可以使用 SEQUENCE 来实现它;相关程序是:

        CREATE SEQUENCE mytable_myid_seq;
        ALTER TABLE mytable ALTER COLUMN myid SET DEFAULT NEXTVAL('mytable_myid_seq');
        

        这方面的好文章是MySQL versus PostgreSQL: Adding an Auto-Increment Column to a Table

        【讨论】:

        • 谢谢,我第一次使用 postgre :)
        猜你喜欢
        • 2010-10-21
        • 2017-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多