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>