【发布时间】:2011-08-14 07:24:29
【问题描述】:
我有一个用 Java 编码的测试应用程序,用于在 MySQL、PostgreSQL、Oracle 和 Firebird 数据库中创建索引表和非索引表(除其他外)。
这仅仅是 PostgreSQL 不允许自动增量功能的情况吗?如果没有,建立索引列的正常程序是什么?
提前致谢
【问题讨论】:
标签: database postgresql
我有一个用 Java 编码的测试应用程序,用于在 MySQL、PostgreSQL、Oracle 和 Firebird 数据库中创建索引表和非索引表(除其他外)。
这仅仅是 PostgreSQL 不允许自动增量功能的情况吗?如果没有,建立索引列的正常程序是什么?
提前致谢
【问题讨论】:
标签: database postgresql
您可以在 PostgreSQL 中使用SERIAL 来生成自增字段,
例如:-
CREATE TABLE user (
userid SERIAL PRIMARY KEY,
username VARCHAR(16) UNIQUE NOT NULL
)
这将创建用户 ID 作为索引的自动增量主键。 如果您不想将其作为主键,只需删除 PRIMARY KEY。
【讨论】:
使用SERIAL 类型的列。它的工作方式与其他一些数据库上的AUTOINCREMEMT 相同。 (查看文档以了解您可以使用的其他功能。)
【讨论】:
使用当前的 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
【讨论】: