TABLE1에 삽입 된 동일한 일련 번호를 가진 행의 UID 값으로 TABLE2를 업데이트해야하므로이 코드를 실행하여이 트리거를 작성했습니다.Oracle 트리거가 업데이트되지 않음
CREATE OR REPLACE TRIGGER TRIG_NAME BEFORE INSERT ON TABLE1 FOR EACH ROW
DECLARE
seq NUMBER(10);
uid CHAR(36);
BEGIN
seq := :new.SEQ;
uid := :new.UID;
UPDATE TABLE2 SET TABLE2.UID = uid WHERE TABLE2.SEQ = seq;
DBMS_OUTPUT.put_line('UPDATE TABLE2 SET UID = '||uid||' WHERE SEQ = '||seq||';');
END;
트리거는 내가
SET SERVEROUTPUT ON;
다음
INSERT INTO TABLE1 (SEQ, UID) VALUES (47, 'TEST_VALUE');
및 예상 출력 그래서
UPDATE TABLE2 SET UID = TEST_VALUE WHERE SEQ = 47;
, 정확한 값을 얻을 문제없이 만들 것 에 들어가고있는 것처럼 보입니다. 방아쇠. 그럼 내가 잘못거야 어디 사람이 볼 수 있습니까
SEQ UID
--- ------------------------------------
47
1 row selected.
을 얻을
SELECT SEQ,UID FROM TABLE2 WHERE SEQ = 47;
을 실행하여 TABLE2을 확인?
ROLLBACK을 만들었습니까? 즉 COMMIT하는 것을 잊었습니까? –
같은 세션입니다. 나중에 COMMIT를 실행 해 보았습니다. – user1958756