触发输入有关表中操作的信息

时间:2017-01-18 19:41:31

标签: sql oracle plsql triggers

我创建了表来存储有关任何更新时间的信息,在其中一个表中插入或删除数据。

CREATE TABLE dept_changes ( data DATE, action VARCHAR2(16) );

现在我想创建触发器将数据输入到表中:

CREATE OR REPLACE TRIGGER dept_changes_trig AFTER UPDATE OR INSERT OR DELETE ON departments
DECLARE
    action VARCHAR2(16);
BEGIN
    IF UPDATING THEN
        action:='upd';
    END IF;
    IF INSERTING THEN
        action:='ins';
    END IF;
    IF DELETING THEN
        action:='del';
    END IF;
    INSERT INTO DEPT_CHANGES (SYSDATE, action);
END;

我在第12行遇到了2个错误(DELETING条件语句的END IF)。

Error(12,5): PL/SQL: SQL Statement ignored
Error(12,46): PL/SQL: ORA-00926: missing VALUES keyword

我不明白,我错过了什么VALUES?触发器需要什么才能正常工作?

1 个答案:

答案 0 :(得分:2)

使用关键字

INSERT INTO DEPT_CHANGES VALUES (SYSDATE,action);

Insert Examples