본문 바로가기
웹개발일지/Database

MySQL 자동 데이터 삭제

by 경험을 기록으로 2020. 8. 24.
반응형

dummy_data 에 테스트할 dummy데이터 삽입

INSERT INTO dummy_data(name, createdAt, limitedAt) VALUES("Del01", NOW(), DATE_ADD(NOW(),INTERVAL + 1 MINUTE));


dummy_data 테이블 데이터 가져오기

SELECT * FROM dummy_data;

 

dummy_data 테이블 데이터 삭제 

DELETE FROM dummy_data;

 

dummy_data 테이블 안에서 limitedAt(Date타입)이 현재 시간에서 1초 뺀 시간 보다 작은 데이터만 가져오기 

SELECT * FROM dummy_data WHERE limitedAt < DATE_ADD(NOW(), INTERVAL -1 SECOND);

 

프로시저 생성

DELIMITER $$
CREATE PROCEDURE autoDel()
BEGIN
DELETE FROM dummy_data WHERE limitedAt < DATE_ADD(NOW(), INTERVAL -1 SECOND);
END $$
DELIMITER ;


이벤트 스케줄러 생성

CREATE EVENT autoDelEvent
ON SCHEDULE    
 EVERY 1 MINUTE // 1분마다 체크    
 STARTS NOW() // 시작 시간 설정    
 DO    
 CALL autoDel(); // autoDel 프로시저 호출

 

현재 이벤트 유무와 이벤트 상세 정보 확인

SELECT * FROM information_schema.events;

 

SHOW VARIABLES LIKE 'event%';  // 이벤트 찾기
SET GLOBAL event_scheduler = ON; // 이벤트 스케줄러 활성화
SET @@global.event_scheduler = ON; // 이벤트 스케줄러 활성화

SHOW VARIABLES LIKE 'event%';  // 이벤트 찾기
SET GLOBAL event_scheduler = ON; // 이벤트 스케줄러 활성화
SET @@global.event_scheduler = ON; // 이벤트 스케줄러 활성화
반응형
LIST

'웹개발일지 > Database' 카테고리의 다른 글

MYSQL DELIMITER / PROCEDURE / EVENT SCHEDULE  (0) 2020.08.24

댓글