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>
    
  • 相关阅读:
    Windows下如何通过PLSQL连接Oracle
    Windows下安装Oracle
    Linux下安装Oracle
    Linux命令学习-top命令
    Python3下字典、字符串及列表的相互转换
    Linux下搭建Jmeter+Ant+Jenkins自动化测试框架
    Linux下利用Ant调用Jmeter脚本生成HTML测试报告
    Linux下安装Ant
    Linux下安装Jmeter
    python连接数据库
  • 原文地址:https://www.cnblogs.com/ComputerVip/p/12702718.html
Copyright © 2011-2022 走看看