创建一个 SQL 触发器

Creating a SQL trigger

我正在尝试使用 SQL 在我的数据库上创建一个触发器,这样在插入 table HISTORY table 之后,如果属性FINISHED="T"MESSAGE 属性是 "FINISHED" 否则,如果 FINISHED="F"MESSAGE"NOT FINISHED"

这是我当前的代码,当我尝试 运行 这个时,它说

"Trigger created with compilation errors"

有人能告诉我这个说法有什么问题吗?谢谢!

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;
/

我想这就是你的意图:

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;

请注意,这是一个 before 插入触发器,因为它打算修改正在插入的行。