【问题标题】:how can i resolve error 23505 on pgadmin?如何解决 pgadmin 上的错误 23505?
【发布时间】:2020-06-19 15:56:14
【问题描述】:

我创建了一个名为“席位”的表格;

CREATE TABLE Seats
  (id              serial PRIMARY KEY,
   line            text  NOT NULL ,
   screeningroom   text NOT NULL,
   seatnumber      text NOT NULL
);

之后我尝试了一个 INSERT 脚本,它给了我:

INSERT INTO public.seats(
    id, line, screeningroom, seatnumber)
    VALUES (?,?, ?, ?);

我输入的内部值

VALUES (1,'a', 1, 1);

它给了我一个 SQL 状态错误 23505: 错误:违反了由唯一索引或唯一约束施加的约束。 详情:key (id) =(1) 已经存在。

谁能告诉我如何解决这个错误?

【问题讨论】:

    标签: sql database postgresql insert pgadmin


    【解决方案1】:

    不要在serial 列中输入值。它被定义为串行,因此数据库可以为您增加它:

    INSERT INTO public.seats (line, screeningroom, seatnumber)
        VALUES (?, ?, ?);
    

    【讨论】:

    • 但是我需要那个序列值,我不能删除它
    • @ElenaCiuffreda 。 . .这不会删除它;它会自动设置它。如果您需要插入该值,则只需将其声明为 int -- 并注意使用 on conflict 处理重复项。
    • 现在它给了我另一个错误; sql state 42601 --> INSERT 的表达式多于目标列
    • @ElenaCiuffreda 。 . .在这个答案中,有三个参数和三列。数字匹配。
    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 2017-10-10
    相关资源
    最近更新 更多