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