如何在postgresql中添加id自增列

2024-12-03 00:05:23
推荐回答(3个)
回答1:

使用 serial 来处理。

CREATE TABLE test_create_tab2 (
id SERIAL,
val VARCHAR(10)
);

Test=# CREATE TABLE test_create_tab2 (
Test(# id SERIAL,
Test(# val VARCHAR(10)
Test(# );
注意: CREATE TABLE 将为 serial 字段 "test_create_tab2.id" 创建隐含序列 "test_create_tab2_id_seq"
CREATE TABLE

Test=# \d test_create_tab2;
资料表 "public.test_create_tab2"
栏位 | 型别 | 修饰词

------+-----------------------+-------------------------------------------------
-------
id | integer | 非空 缺省 nextval('test_create_tab2_id_seq'::regclass)
val | character varying(10) |

Test=# INSERT INTO test_create_tab2(val) VALUES ('NO id');
INSERT 0 1
Test=# INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
INSERT 0 1
Test=# select * from test_create_tab2;
id | val
----+---------
1 | NO id
2 | NO id 2
(2 行记录)

Test=# select lastval();
lastval
---------
2
(1 行记录)

回答2:

SERIAL类型的字段和MySQL中的自增唯一ID等价。当你在你的数据表中定义了一个SERIAL类型的列后,SERIAL的自增功能会被自动添加到数据库

回答3:

新建表时,设置 id 为 serial ,并使用sequence,在sequence 中,可以设置id的初始值,最大值,和当前值,以及 每次自增多少