mysql event 실행 관련 0 3 1,423

by 비연 [MySQL] mysql event scheduler delete insert [2017.11.01 23:16:13]


안녕하세요.

이제 슬슬 추위가 오려나 봅니다.  모두 건강하시기 바랍니다.

사용 DB가 mysql 이고 현재 a 와 b 라는 두 DB가 있습니다.

a DB의 테이블에 b DB의 테이블 데이터를 특정시간마다 돌려주려고 합니다.

그래서 mysql의 event scheduler를 이용하려고 했는데, 여기서 문제가 생기네요..해결방법이나 우회하는 방법이 있을지요..

create event IF NOT EXISTS event1
    ON SCHEDULE
        EVERY 60 MINUTE 
        STARTS CURRENT_TIMESTAMP
    DO 
    delete from a.test1;
    INSERT INTO a.test1  SELECT * FROM b.test1 ;

이렇게 하니 데이터가 들어오지를 않네요..아마도 delete문제인거 같은데, a테이블과 b테이블은 동일합니다.

결론은 b.테이블을 특정시간마다 돌려서 a테이블로 가지고 오면서 a테이블관련  정보를 특정시간대에 업데이트 하는게 목적인데, event scheduler에서는 사용할수 없는건지.

도움 부탁드립니다.

 

 

by l2monkeys [2017.11.02 15:03:43]

event_scheduler = ON  이 옵션은 활성화 해주신건가요?


by 비연 [2017.11.02 15:21:54]

네..기본적인건 다 됐고 간단한 insert 스케쥴 event 는 처리되는걸 확인하였습니다.

 


by l2monkeys [2017.11.03 17:56:04]

 

이벤트 스케줄러를 아래 처럼 구현 해서 잘쓰고 있습니다.

순서를 바꿔 보거나

insert -> delete

혹은 truncate -> insert 로 바꿔 보시는건 어떨까요?

insert into myadmin.sendmail_log (mesg)

SELECT CONCAT('LOCK ', lock_table) mesg         

FROM information_schema.INNODB_LOCKS   ;

 

DELETE FROM myadmin.sendmail_log

WHERE ts < NOW() - INTERVAL 7 DAY;

END$$

DELIMITER ;

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입