PostgreSQL自动增量?

  • 回答 (2)
  • 关注 (0)
  • 查看 (55)

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

我要飞别拦我我要飞别拦我提问于
以往V回答于

您可以使用任何其他整数数据类型,例如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;

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

心愿回答于

是的,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更改为现有的列。

扫码关注云+社区

领取腾讯云代金券