1.先創建自增的序列
CREATE SEQUENCE personid_seq INCREMENT 1 MINVALUE 1 MAXVALUE 9223372036854775807 START 1 CACHE 5;
如果需要刪除多余序列命令:刪除序列命令,delete刪除不起作用,要使用drop刪除命令
DROP SEQUENCE personid_seq;
2然后在創建表的時候,設置自增主鍵
nextval('personid_seq'::regclass)
選中ID這列,在默認的設置語句nextval('personid_seq'::regclass) ,這樣插入數據的時候主鍵就會自動遞增了
3.pgsql設置主鍵自增序列值--插入新數據主鍵報錯
例如:
首先執行以下插入數據的命令:
insert into pgsql_test (name) values ('testtest');
報錯原因是自增主鍵的序列值與當前主鍵的字段值不匹配,我們現在需要設置當前最大主鍵值為序列值,執行下面的語句:
SELECT setval('pgsql_test_id_seq', (SELECT MAX(id) FROM pgsql_users));
其中 pgsql_test_id_seq 為你的序列名稱。
4.mybatis postgresql insert后返回自增id
在使用mybatis + postgresql,我們有時在插入數據時需要返回自增id的值,此時在插入時,可以按照以下例子來編寫mapper文件
<insert id="insertUser"> <selectKey resultType="int" order="AFTER" keyProperty="pid" > SELECT currval('tbl_user_pid_seq'::regclass) AS pid </selectKey> insert into tbl_user(name, age) values(#{name}, #{age}) </insert>