2015-10-20 4 views
0

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

CREATE OR REPLACE TRIGGER TRIG_TS_TRANSPORT_AFTER 
    AFTER INSERT OR 
     UPDATE OF iud, addressid, idd, rld, pickupaddressid, vessel 
    ON chassitransports 
    REFERENCING NEW AS new OLD AS old 
    FOR EACH ROW 
. 
. 
. 
  1. Любой один из столбцов обновляется
  2. все столбцы обновляются

Поскольку обновления происходят из внешнего db, я не могу проверить приведенные выше сценарии: |

+1

Мое понимание, что оно будет срабатывать после вставки * любой * строки ИЛИ после обновления * одного из упомянутых * столбцов – Hawk

ответ

0

Он должен загореться после ВСТАВКИ строк или после ОБНОВЛЕНИЯ любой из упомянутых столбцов. См. Ниже пример:

---- Create sample Tables 
CREATE TABLE temptable1 (regNo VARCHAR2(20), timec TIMESTAMP(6)); 

create table TEMPTABLE2 
(
    idx NUMBER, 
    regno VARCHAR2(20), 
    eventb VARCHAR2(20), 
    timec DATE, 
    rfid NUMBER 
); 

----- Trigger definition 
CREATE OR REPLACE TRIGGER after_update_tr 
AFTER UPDATE OF timec, regNo ON temptable2 

FOR EACH ROW 
BEGIN 

INSERT INTO temptable1 
VALUES(:NEW.regNo, 
:NEW.timec); 

EXCEPTION WHEN OTHERS THEN 
dbms_output.put_line(sqlerrm); 

END; 

------ Fire update statement ---- 
UPDATE temptable2 
SET regNo = 'VISIT0000011' 
WHERE timec IS NULL; 

, и оно выполнено успешно.

Смежные вопросы