안녕하세요.
이제 슬슬 추위가 오려나 봅니다. 모두 건강하시기 바랍니다.
사용 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에서는 사용할수 없는건지.
도움 부탁드립니다.
이벤트 스케줄러를 아래 처럼 구현 해서 잘쓰고 있습니다.
순서를 바꿔 보거나
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 ;