postgres数据库设置主键自增序列值

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>

猜你喜欢

转载自www.cnblogs.com/ComputerVip/p/12702718.html
今日推荐