아래 트리거를 create하면
실행이 되지 않습니다.
T_USER 테이블의 APP_TYPE 필드값이 'A'나 'B'로 update될때
SELECT GROUP_ID FROM T_GROUP WHERE GROUP_ID = 2의 값이 없으면
T_GROUP Insert하고
SELECT USER_ID FROM T_USER_GROUP WHERE GROUP_ID = 2 AND USER_ID = NEW.USER_ID의 값이 없으면
T_USER_GROUP 에 insert하는 트리거를 만든건데...TT
T_USER의 APP_TYPE값이 'A'로 바뀌어도 'B'로 바뀌어도
T_GROUP과 T_USER_GROUP 에 아무 변화가 없습니다.
꼭 보시고 해답을 알려주세요
CREATE TRIGGER T_USER_APP_TYPE_AU
AFTER UPDATE OF APP_TYPE ON T_USER
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW MODE DB2SQL
WHEN(NEW.APP_TYPE IN('A','B'))
BEGIN ATOMIC
DECLARE group_id INTEGER;
DECLARE user_group VARCHAR(20);
SET group_id = (SELECT GROUP_ID FROM T_GROUP WHERE GROUP_ID = 2);
SET user_group = (SELECT USER_ID FROM T_USER_GROUP WHERE GROUP_ID = 2 AND USER_ID = NEW.USER_ID);
IF group_id <> 2 THEN
INSERT INTO T_GROUP (GROUP_ID, GROUP_NAME, GROUP_DESC) VALUES (2, '결재자', '결재자 그룹');
END IF;
IF user_group <> NEW.USER_ID THEN
INSERT INTO T_USER_GROUP (GROUP_ID, USER_ID) VALUES( 2, NEW.USER_ID);
END IF;
END