【问题标题】:Postgres Duplicate Key Error CodePostgres 重复键错误代码
【发布时间】:2014-04-05 18:06:22
【问题描述】:

目前我使用 postgresql 作为我的数据库,并通过 MS Excel csv 格式将所有数据导入表中。一切都很顺利,但问题是每当我想向表中插入其他数据时,例如使用以下代码:

insert into country (name)
values ('America');

一直弹出一个错误

ERROR:  duplicate key value violates unique constraint "effect_pkey"
DETAIL:  Key (country_id)=(1) already exists.
********** Error **********

ERROR: duplicate key value violates unique constraint "effect_pkey"
SQL state: 23505
Detail: Key (country_id)=(1) already exists.

当我不断尝试插入数据时,得到的错误类似于错误消息中的 country_id 正在增加。那么我只能在超过表中现有 ID 时插入数据。我想知道如何解决这个问题。非常感谢。

【问题讨论】:

  • 请将国家/地区表的表定义添加到您的问题中。 (country_id 是连续剧?)
  • @joop ya id 是串行格式的,它只是一个带有 ID 和 NAME 的简单表,
  • 可能您的数据导入忘记重置序列号(表中出现的最大值)
  • @joop 我应该如何克服这个问题..hmmmm
  • 您必须将主序列密钥重置为从文件导入的当前值+1:您可以这样实现:stackoverflow.com/a/3819323/1216680

标签: sql postgresql


【解决方案1】:

类似:

SELECT setval('country_id_seq', (SELECT MAX(country_id) FROM country) );

(我不知道 确切 名称,因为 OP 在他的问题中没有给出表定义)

【讨论】:

    猜你喜欢
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多