创建SQL触发器

时间:2017-10-09 13:49:08

标签: oracle plsql database-trigger

我正在尝试使用SQL在我的数据库上创建一个触发器,这样在插入表HISTORY表后,如果属性FINISHED="T",则MESSAGE属性为"FINISHED"其他,如果FINISHED="F",则MESSAGE"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 个答案:

答案 0 :(得分:2)

我认为这是你想要的:

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;

请注意,这是之前的插入触发器,因为它打算修改要插入的行。