zoukankan      html  css  js  c++  java
  • 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>
    
  • 相关阅读:
    SpringBoot部署jar与war
    Calendar代替Date常用方法小记
    Zookeeper注册中心底层实现小记
    1480. Running Sum of 1d Array
    700. Search in a Binary Search Tree
    1410. HTML Entity Parser
    1409. Queries on a Permutation With Key
    1408. String Matching in an Array
    1404. Number of Steps to Reduce a Number in Binary Representation to One
    1405. Longest Happy String
  • 原文地址:https://www.cnblogs.com/ComputerVip/p/12702718.html
Copyright © 2011-2022 走看看