2017-01-18 4 views
0

Я создал таблицу для хранения информации о времени любого обновления, вставки или удаления данных в одной из таблиц.Триггер ввода информации о действии в таблице

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

Теперь я хочу, чтобы создать триггер inputing данных в таблицу:

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; 

Я получил 2 ошибки в строке 12 (END IF вычеркивания условия о).

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

Я не понимаю, что VALUES мне не хватает? Какой триггер должен работать правильно?

+2

взгляд на линии 12, столбец 46. Добавленное заявление отсутствует ключевое слово VALUES. ВСТАВИТЬ В СТОИМОСТЬ ЦЕННОСТЕЙ (значения) – Olli

+0

Спасибо, он работает. Я не понял ошибку, и мой учебник пропустил ключевое слово VALUES. – bansheemon

ответ

2

Используйте значения ключевое слово

INSERT INTO DEPT_CHANGES ЗНАЧЕНИЯ (Sysdate, действие);

Insert Examples