2012-11-17 2 views
0

여러 WHEN 절을 사용하여 HSQL DB에서 트리거를 만들 수 있습니까? 다음과 같은 것 : -여러 WHEN 절이있는 HSQL 트리거

CREATE TRIGGER perosn_trig AFTER UPDATE ON person 
REFERENCING NEW AS nwrow OLD as oldrow 
FOR EACH ROW 
    when (nwrow.person_id>100) 
    (insert into TRIGLOG values ('PERSON_more_than_100',nwrow.person_id,SYSDATE) ), 
    When (nwrow.person_id<=100) 
    (insert into TRIGLOG values ('PERSON_less_than_100',nwrow.person_id,SYSDATE)) 
; 

이 쿼리는 구문 오류를 제공합니다. 올바른 구문은 무엇입니까?

답변

1

현재 트리거에는 여러 WHEN 절이 지원되지 않습니다. WHEN 절은 일반적으로 필요한 경우에만 트리거를 호출하는 간단한 조건과 함께 사용됩니다.

CREATE TRIGGER perosn_trig AFTER UPDATE ON person 
REFERENCING NEW AS nwrow OLD as oldrow 
FOR EACH ROW 
BEGIN ATOMIC 
    IF (nwrow.person_id>100) THEN 
    insert into TRIGLOG values ('PERSON_more_than_100',nwrow.person_id,SYSDATE); 
    ELSE 
    insert into TRIGLOG values ('PERSON_less_than_100',nwrow.person_id,SYSDATE); 
    END IF; 
END 

http://hsqldb.org/doc/2.0/guide/sqlroutines-chapt.html#src_psm_conditional

: 더 복잡한 조건

은 CASE 또는 IF 조건을 사용하여