Создание Oracle Trigger для копирования /INSERT одной записи на UPDATE в новую таблицу?
Я пытаюсь настроить триггер в моей базе данных Oracle, который срабатывает каждый раз, когда запись обновляется в Table1
, Когда триггер выполняется (после?), Я хочу скопировать / вставить :old
значения записи для всех полей в записи, которая была обновлена в HistoryTable
, Единственная разница между двумя таблицами заключается в включении [Table1_ID]
поле для ссылки на все записи истории для этого конкретного Table1.[ID]
:
[Table1] - [ID][col1][col2][col3][etc.]
[HistoryTable] - [ID][Table1_ID][col1][col2][col3][etc.]
Кто-нибудь знает, как это настроить? Я попытался написать сценарий, как показано ниже, но пока безуспешно, и не выяснил, как точно указать действие в пределах TOAD
графический интерфейс. У меня уже есть Sequence/Trigger
пара на месте, так что [ID]
поле для HistoryTable
автоматически увеличивается каждый раз, когда вставляется новая запись.
CREATE OR REPLACE TRIGGER SCHEMA1.ITEM_UPDATED_TRG
AFTER UPDATE ON TABLE1
FOR EACH ROW
DECLARE
BEGIN
INSERT INTO SCHEMA1.HISTORYTABLE (Table1_ID, col1, col2, col3, etc.)
VALUES (:OLD.ID, :OLD.col1, :OLD.col2, :OLD.col3, :OLD.etc);
END;
ShOW ERRORS;
Окно вывода появляется Warning: compiled but with compilation errors - No errors.
...?