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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM