如何在postgreSQL中创建一个存储过程以在处理错误和异常的同时插入新行?

How to create a stored procedure in postgreSQL to insert new rows whilst handling errors and exceptions?

提问人:bassam_ 提问时间:11/21/2022 更新时间:11/21/2022 访问量:47

问:

我的数据库中有一个“PLAYER”表,其架构如下:

CREATE TABLE IF NOT EXISTS local."Player"
(
    "Player_ID" integer NOT NULL,
    "Club_ID" integer NOT NULL,
    "Group_ID" integer NOT NULL,
    "First_Name" character varying(20) NOT NULL,
    "Last_Name" character varying(20) NOT NULL,
    "Goals_Scored" integer,
    "Yellow_Card_Count" integer,
    "Red_Card_Count" integer,
    PRIMARY KEY ("Player_ID")
);

我想创建一个存储过程来添加具有相关字段的新玩家,但是当添加了玩家的名字但已存在于表中时,以及当字段Player_ID也作为重复项插入时,我需要它来引发异常/错误。

我能够创建一个简单的存储过程来添加新玩家,但是当涉及到异常/错误处理时,我很难。这是我第一次创建存储过程,因此任何帮助将不胜感激。

SQL PostgreSQL 异常 错误处理 重复项

评论

0赞 11/21/2022
在不应有重复项的列上创建唯一的约束(或索引)。让调用方处理因尝试插入重复项而产生的异常。
0赞 11/21/2022
与您的问题无关,但是:您真的应该避免那些可怕的引用标识符。他们比值得的麻烦多得多。wiki.postgresql.org/wiki/......
0赞 bassam_ 11/21/2022
@a_horse_with_no_name,感谢您的回复,我可以尝试为 Player_ID、First_Name 和 Last_Name 添加独特的约束,然后从那里开始。您能否为适用于这种情况的例外条款提供一个结构?
0赞 bassam_ 11/21/2022
@a_horse_with_no_name我会将所有字段名称更改为小写,以避免使用引号标识符,感谢您的建议!

答: 暂无答案