2017-09-23 5 views
-3

안녕 PL/SQL 전문가 !! Oracle SQL Developer : 트리거

내가 그래서 내가 트리거를 실행할 때

배트맨

을 추가 한 다음 출력을

1 row inserted. 

을 가질 수

INSERT INTO SUPERHEROES VALUES ('Batman'); 

의 값 '배트맨'를 사용하는 방법을 아십니까 기능? 나는 아래의 진술을 사용했지만 Batman을 보여주지는 않습니다. 미리 감사드립니다.

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를 사용해야합니다 :이 코드

(참고 : 난 그냥 학습 SQL 시작 했어).

:old에는 이전 레코드 상태 인 :newfor each row 트리거에 새 레코드 상태가 포함되어 있습니다.

+0

정말 고마워요 !!!! 그 외에도 다음과 같은 경우 IF 또는 존재 조건을 추가 할 수 있습니까? new.sh_name이 이미 수퍼 히어로 테이블에 있습니까? 내가 목표로하는 것은 그것이 슈퍼 히어로 테이블에 삽입되기 전에 그것이 이미 존재하는지 먼저 점검 할 것이다. 그렇지 않으면 테이블에 삽입되지 않습니다 – Raymond

+0

"이미 존재하는지 확인합니다"트리거를 사용하지 말고 고유 한 제약 조건 또는 기본 키를 테이블에 추가하십시오. 올바른 방법입니다. . – APC