1. 程式人生 > >postgresql自增id斷層

postgresql自增id斷層

問題一:

發現表的主鍵id不連續,又沒做過刪除操作,很奇怪。

因為用的是upsert進行了操作,以為是upsert操作有什麼坑,insert衝突的則執行更,難道會先刪除原來的資料再插入,而導致主鍵增長?
後來發現,是insert失敗,pg的主鍵也會增長,所以後續插入成功的資料主鍵id會跳過insert失敗的次數。

問題二

insert的時候帶入id,則主鍵不會自增,所以下一次插入不帶id的資料時,就會報 duplicate key value violates unique constraint “table_pkey1”。當然報完錯後,主鍵又會+1。