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>
    
  • 相关阅读:
    Install Postgresql on Ubuntu
    Pytest
    Pytest
    wrk 压力测试
    Objective-C 格式化字符串Format
    安装BeyondCompare on Ubuntu
    eclipse + python + pydev (Pydev安装成功确看不到插件的解决办法)
    如何解决: Ubuntu 系统 adb devices出现no permissions
    oracle rac搭建
    CentOS6.8编译安装LAMP
  • 原文地址:https://www.cnblogs.com/ComputerVip/p/12702718.html
Copyright © 2011-2022 走看看