PostgreSQL没有自动增量功能?

时间:2011-04-28 00:17:17

标签: database postgresql

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

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

提前致谢

3 个答案:

答案 0 :(得分:6)

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

例如: -

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

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

答案 1 :(得分:3)

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

答案 2 :(得分: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