最近工作中需要还原备份数据,数据库用的是postgresql。但在批量查询的时候,数据库报错duplicate key value violates unique constraint "table_pk"的问题,经过多方查询资料,在stckoverflow一个答案,说的比较好:
最后总结,postgresql 插入时指定了id,他的table_id_seq不会自增(相当于走的更新),不指定id话,xx_id_sql会自动+1;
指定id的情况,只有id比xx_id_seq大才会成功;所以在备份插入前直接将xx_seq_id重置为1:
SELECT setval('table_id_seq', 1) 搞定.
注:mysql好像没有遇到过