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を忘れましたか? –
これは同じセッションです。私は後でコミットを実行しようとしましたが、確かにそうです。 – user1958756