Создание ПОСЛЕ INSERT TRIGGER на столе Oracle - PullRequest
1 голос
/ 03 октября 2019

Я не знаю, как создать AFTER INSERT TRIGGER с условием Table_1.Table_2_ID = Table_2.ID .

CREATE OR REPLACE TRIGGER Table_2_TRG
   AFTER INSERT
   ON Table_1
   FOR EACH ROW
BEGIN
    UPDATE Table_2
    SET Col1 = '1'
    FROM (SELECT Table_2_ID FROM Table_1)
    WHERE Table_1.Table_2_ID = Table_2.ID;
END;

Необходимо изменить значение записи в Table_2ПОСЛЕ ВСТАВКИ запись в Таблице_1 с аналогичным идентификатором (идентификаторы Таблицы_2_ в Таблице_1 и идентификаторы в Таблице_2 идентичны).

Col1 в Таблице_2 имеет тип VARCHAR2.

У меня есть этот код,но после выполнения оператора возникает ошибка:

«2/5 PL / SQL: оператор SQL игнорируется

4/5 PL / SQL: ORA-00933: команда SQL не правильнозакончилась »

Ответы [ 2 ]

1 голос
/ 03 октября 2019

это будет работать:

CREATE OR REPLACE TRIGGER Table_2_TRG
   AFTER INSERT
   ON Table_1
   FOR EACH ROW
BEGIN
    UPDATE Table_2
    SET Col1 = '1'
    where id=:new.id;
END;
1 голос
/ 03 октября 2019

Если я правильно понял, вам нужен такой WHERE пункт:

CREATE OR REPLACE TRIGGER Table_2_TRG
   AFTER INSERT
   ON Table_1
   FOR EACH ROW
BEGIN
    UPDATE Table_2 b
    SET b.Col1 = '1'
    WHERE b.id = :new.table_2_id;
END;
...