使用 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 行记录)
SERIAL类型的字段和MySQL中的自增唯一ID等价。当你在你的数据表中定义了一个SERIAL类型的列后,SERIAL的自增功能会被自动添加到数据库
新建表时,设置 id 为 serial ,并使用sequence,在sequence 中,可以设置id的初始值,最大值,和当前值,以及 每次自增多少