PostgreSQL自动增量

我正在从MySQL切换到PostgreSQL,并想知道如何做自动增量值。 我在PostgreSQL文档中看到了一个数据类型“serial”,但是在使用它时会出现语法错误(在v8.0中)。


是的,SERIAL是等效功能。

CREATE TABLE foo (
id SERIAL,
bar varchar);

INSERT INTO foo (bar) values ('blah');
INSERT INTO foo (bar) values ('blah');

SELECT * FROM foo;

1,blah
2,blah

SERIAL只是一个创建表格时间宏的序列。 您无法将SERIAL更改为现有列。


您可以使用任何其他整数数据类型,例如smallint

示例:

CREATE SEQUENCE user_id_seq;
CREATE TABLE user (
    user_id smallint NOT NULL DEFAULT nextval('user_id_seq')
);
ALTER SEQUENCE user_id_seq OWNED BY user.user_id;

最好使用自己的数据类型,而不是用户的串行数据类型。


如果你想在已经存在的表格中添加序列到id,你可以使用:

CREATE SEQUENCE user_id_seq;
ALTER TABLE user ALTER user_id SET DEFAULT NEXTVAL('user_id_seq');
链接地址: http://www.djcxy.com/p/56959.html

上一篇: PostgreSQL Autoincrement

下一篇: Workflow for creating animated hand