Palsur 2022-06-30 15:47 采纳率: 44.4%
浏览 33
已结题

PostgreSQL创建触发器的时候报错,

CREATE FUNCTION jins_xfupdate_func() RETURNS TRIGGER AS
$$
DECLARE
BEGIN
IF NEW.js_成绩01>=60 AND OLD. js_成绩01<60 THEN
UPDATE "jins_学生01" set js_已修学分总数01= js_已修学分总数01+(SELECT js_学分01 FROM "jins_课程01" WHERE js_课程编号01=NEW.js_课程编号01)
WHERE "jins_学生01".js_学号01=NEW. js_学号01;
RETURN NEW;
ELSE RETURN NULL;
END IF;
END
$$LANGUAGE PLPGSQL;

CREATE TRIGGER jins_TG学分统计 trigger
AFTER UPDATE ON jins_学习01"
FOR EACH ROW
EXECUTE PROCEDURE jins_xfupdate_func();

  • 写回答

1条回答 默认 最新

  • Palsur 2022-06-30 16:49
    关注
    
    CREATE FUNCTION jins_xfupdate_func() RETURNS TRIGGER AS
    $$
    DECLARE
    BEGIN
    IF NEW.js_成绩01>=60 AND OLD. js_成绩01<60 THEN
    UPDATE "jins_学生01" set js_已修学分总数01= js_已修学分总数01+(SELECT js_学分01 FROM "jins_课程01" WHERE js_课程编号01=NEW.js_课程编号01)
    WHERE  "jins_学生01".js_学号01=NEW. js_学号01;
    RETURN NEW;
    ELSE RETURN NULL;
    END IF;
    END
    $$LANGUAGE PLPGSQL;
    
    CREATE TRIGGER jins_TG学分统计 trigger
    AFTER UPDATE ON jins_学习01
    FOR EACH ROW
    EXECUTE PROCEDURE jins_xfupdate_func();
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月30日
  • 赞助了问题酬金5元 6月30日
  • 创建了问题 6月30日