일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 잠실수영장
- 충주골프장
- 휘닉스파크
- 서원힐스
- LGG6
- 파주골프장
- 야생개복숭아
- 괌
- 경기북부골프장
- 포천가볼만한곳
- 포천수영장
- 제주도눈썰매
- 덕소골프샵
- 자연산 개복숭아
- 포천온천
- 돌복숭아
- 한라산
- 개복숭아 판매
- 포천투어
- 괌자유여행
- 개복숭아
- 조경철천문대
- 제주도
- 개복숭아판매
- 제주도설경
- 야생개복숭아 판매
- 태안수영장펜션
- 제주도눈
- wp-900
- 자연산개복숭아
- Today
- Total
Live Brilliant
[MYSQL] event(스케줄러) 적용 데이터 삭제 본문
1. 정기적으로 데이터 삭제할 일이 생겼다.
ex) 개인정보를 수집기간이 6개월이고 기간이지난 개인정보는 삭제해야한다.
mysql event를 통해 처리해보자
/* uncomment the example below you want to use */
-- scheduleexample 1: 한 번 실행
-- AT 'YYYY-MM-DD HH:MM.SS'/CURRENT_TIMESTAMP { + INTERVAL 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] }
-- scheduleexample 2: 반복 실행
-- EVERY 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...]
-- scheduleexample 3: 지정된 시작 시간, 종료 시간 및 간격에 맞게 실행
/*EVERY 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...]
STARTS CURRENT_TIMESTAMP/'YYYY-MM-DD HH:MM.SS' { + INTERVAL 1[HOUR|MONTH|WEEK|DAY|MINUTE|...] }
ENDS CURRENT_TIMESTAMP/'YYYY-MM-DD HH:MM.SS' { + INTERVAL 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] } */
#6개월이 지난 데이터 조회 쿼리
SELECT * FROM USER_DATA
WHERE REG_DATE < DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-%d'),INTERVAL 6 MONTH)
ORDER BY NO DESC;
#이제 몇시를 기준으로 반복 실행할지 지정해야한다.
- 2015년 1월1일 01시부터 1일간격으로 반복실행하여 6개월이 지난 데이터를 삭제한다.
DELIMITER $$
CREATE /*[DEFINER = { user | CURRENT_USER }]*/ EVENT `test`.`del_userdb`
ON SCHEDULE
-- 반복실행 (유저디비 6개월 지난 데이터 삭제 스케쥴러 )
EVERY 1 DAY
-- 2015년 1월1일 01시 시작
STARTS '2015-01-01 01:00:00'
ENABLE
DO
BEGIN
DELETE FROM USER_DATA WHERE REG_DATE < DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-%d'),INTERVAL 2 YEAR);
END$$
DELIMITER ;
'개발은 핵찜이야 > DATABASE' 카테고리의 다른 글
[Mysql] 테이블 컬럼명 가져오기 (0) | 2023.02.16 |
---|---|
[Mysql] db테이블 리스트 및 최근 업데이트 테이블순 (0) | 2018.06.25 |
[mysql] EXPLAIN 쿼리 최적화 (0) | 2015.01.22 |
[mysql] 두테이블 조인후 업데이트 (0) | 2015.01.08 |
[mysql] 컬럼값 앞뒤로 특정값 채우는 함수 (0) | 2014.02.18 |