代码之家  ›  专栏  ›  技术社区  ›  user7413279

创建SQL触发器

  •  0
  • user7413279  · 技术社区  · 7 年前

    我正在尝试使用SQL在数据库上创建触发器,以便在插入表后 HISTORY 表,如果,属性 FINISHED="T" 这个 MESSAGE 属性为 "FINISHED" 否则,如果 FINISHED="F" 这个 消息 "NOT FINISHED" .

    这是我目前试图运行的代码,上面写道

    “使用编译错误创建触发器”

    谁能告诉我这句话有什么不对吗?非常感谢。

    CREATE OR REPLACE TRIGGER MESSAGE_TR
    AFTER INSERT
    ON HISTORY
    FOR EACH ROW
    BEGIN
        IF (HISTORY.FINISHED="T")
        THEN
            INSERT INTO HISTORY(MESSAGE) VALUES("FINISHED");
        ELSEIF (HISTORY.FINISHED="F")
            INSERT INTO HISTORY(MESSAGE)VALUES("NOT FINISHED");
    END;
    /
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Thorsten Kettner    7 年前

    我认为这就是你的意图:

    CREATE OR REPLACE TRIGGER MESSAGE_TR
    BEFORE INSERT
    ON HISTORY
    FOR EACH ROW
    BEGIN
       :NEW.MESSAGE := (CASE WHEN :NEW.FINISHED = 'T' THEN 'FINISHED' ELSE 'NOT FINISHED' END);
    END;
    

    注意,这是一个 之前