본문 바로가기
IT 개발일지

MYSQL 스케쥴러SCHEDULE 및 트리거TRIGGER 예제

by (주)삼우기공 2024. 5. 8.
반응형

CREATE EVENT IF NOT EXISTS paytime_test
ON SCHEDULE
every 1 minute
ON COMPLETION NOT PRESERVE
ENABLE
COMMENT '결재'
DO 
update reservation set useyn = 'N'
where DATE_ADD(logdate, INTERVAL 5 MINUTE) < now() and useyn = 'Y' and payyn = 'N';

SHOW EVENTS;
DROP EVENT staygs.paytime;

DELIMITER $$
CREATE TRIGGER payupdate
BEFORE  INSERT ON payment
FOR EACH ROW 
BEGIN
DECLARE idTemp VARCHAR(32);
DECLARE answerTemp VARCHAR(32);

SET idTemp = NEW.merchant_uid;
SET answerTemp = new.status; 
        
        if answerTemp = 'DONE' then
UPDATE reservation set payyn = 'Y', useyn = 'Y' where merchant_uid = idTemp;
        elseif answerTemp = 'CANCELED' then
UPDATE reservation set payyn = 'N', useyn = 'N' where merchant_uid = idTemp;
        end if;
END $$
DELIMITER ;

SHOW TRIGGERS;
Drop Trigger payupdate;

반응형

댓글