2017-09-23 165 views
-3

Hello PL/SQL Experts!Oracle SQL開發人員:觸發器

你知道我可以使用值「蝙蝠俠」在

INSERT INTO SUPERHEROES VALUES ('Batman'); 

所以我可以有下面的輸出

1 row inserted. 

您加入蝙蝠俠

當我運行一個觸發功能?我使用了下面的聲明,但沒有顯示蝙蝠俠。先謝謝你! (注:我剛開始學習SQL)

這是一個代碼:

CREATE OR REPLACE TRIGGER TRIG_SUPERHEROES 
BEFORE INSERT ON SUPERHEROES 
FOR EACH ROW 
ENABLE 
DECLARE 
    V_USER VARCHAR(20); 
    SH_NAME VARCHAR(20); 
BEGIN`enter code here` 
    SELECT USER INTO V_USER FROM DUAL; 
    DBMS_OUTPUT.PUT_LINE('YOU JUST ADDED NEW RECORD ' ||SH_NAME); 
END; 
+0

格式代碼 –

回答

0

你必須使用:new.sh_name

:old包含舊記錄狀態,:new包含for each row觸發器中的新記錄狀態。

+0

非常感謝你!除此之外,如果在超級英雄表中已經存在new.sh_name,是否可以添加IF或存在條件?我的目標是在它插入超級英雄表之前,它會先檢查它是否已經存在。否則,它不會被插入表 – Raymond

+0

「它將首先檢查它是否已經存在」不要使用觸發器,爲表添加唯一的約束或主鍵而不是,這是做事的正確方法。 – APC