当...时出错:然后:更新触发前

时间:2017-06-06 18:57:20

标签: sql postgresql database-trigger

我有一个名为medical_folder的表格,其中有2列名为id_med_foldercure,这是患者的身份和治疗方法。

我需要制作一个更新cure列的触发器, 所以我创建了一个名为audit的第二个表,其中列EMP_IDEMP_CURE

然后,通过触发器,我执行一个名为auditfunc()的函数。

但是,当我尝试传递NEW.IDNEW.CURE时,我收到了一个我无法理解的错误。

    CREATE TABLE AUDIT(
    EMP_ID INTEGER NOT NULL,
    EMP_CURE TEXT NOT NULL
);


CREATE TRIGGER LeTrigger 
AFTER UPDATE ON medical_folder
FOR EACH ROW EXECUTE PROCEDURE auditfunc();



CREATE OR REPLACE FUNCTION auditfunc()
RETURNS TRIGGER AS 
$LeTrigger$
DECLARE 
    aidi integer Not null;
    kiour text Not null;
BEGIN 
    INSERT INTO AUDIT(EMP_ID,EMP_CURE)
    VALUES(NEW.ID, NEW.CURE);
    aidi = New.ID;
    kiour = New.Cure;   
    RETURN NEW;
    WHEN medical_folder.id_med_folder = aidi THEN medical_folder.cure = kiour   
END;
$LeTrigger$
LANGUAGE plpgsql;

0 个答案:

没有答案