2017-02-27 6 views
0

PC 테이블에 삽입 할 때 랩톱 테이블에 이미있는 모델 ID가없는 트리거를 만들려고합니다. 나는 그 문장을 몇 번 편집했지만, 계속 경고 : 트리거가 컴파일 오류로 생성되었다.트리거를 사용하여 두 테이블에 제약 조건 적용

CREATE OR REPLACE TRIGGER chk_models 
    BEFORE INSERT ON PC 
    FOR EACH ROW 
DECLARE mcount :=0; 
BEGIN 
    SELECT COUNT(*) 
    INTO mcount 
     FROM PC 
     JOIN Laptop 
     ON :NEW.model=Laptop.model; 
    IF mcount!=0 
      THEN RAISE_APPLICATION_ERROR (-20004, "Model Number Violation"); 
    END IF; 
END; 

해결 방법에 대한 조언이 있으십니까?

답변

0

변수 mcount을 선언하고 텍스트에 작은 따옴표를 사용하십시오. 또한 조인은 중복되므로 제거했습니다.

이 당신을 위해 작동합니다 : 그것은 일

CREATE OR REPLACE TRIGGER chk_models 
    BEFORE INSERT ON PC 
    FOR EACH ROW 
DECLARE 
    mcount int :=0; 
BEGIN 
    SELECT COUNT(*) 
    INTO mcount 
    from Laptop 
    where model = :NEW.model; 
    IF mcount!=0 
      THEN RAISE_APPLICATION_ERROR (-20004, 'Model Number Violation'); 
    END IF; 
END; 
+0

. 고마워요. 고마워요. –