집 >데이터 베이스 >MySQL 튜토리얼 >MySQL에서 연령에 따라 일일 행 삭제를 어떻게 자동화할 수 있습니까?
저장 프로시저를 사용하여 MySQL에서 행 삭제 자동화
모든 테이블에서 7일보다 오래된 행을 제거하는 MySQL 저장 프로시저를 생성하려고 합니다. 매일 자정에. 스크립팅 솔루션이 있지만 이 기사에서는 MySQL의 EVENT 기능을 사용하는 보다 자동화된 접근 방식에 중점을 둡니다.
프로시저 생성
먼저 이벤트 스케줄러가 활성화되어 있는지 확인하세요.
SET GLOBAL event_scheduler = ON;
그런 다음 매일 실행되는 이벤트를 만듭니다. 00:00:
CREATE EVENT `delete7DayOldRows` ON SCHEDULE EVERY 1 DAY STARTS '2023-03-01 00:00:00' ON COMPLETION PRESERVE DO -- Your delete logic here END;
삭제 논리 정의
이벤트의 DO 블록 내에서 삭제 논리를 지정합니다. 예는 다음과 같습니다.
BEGIN DECLARE tableName VARCHAR(255); DECLARE cursor CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_schema = 'your_database_name'; OPEN cursor; FETCH cursor INTO tableName; WHILE tableName IS NOT NULL DO DELETE FROM `your_database_name`.`tableName` WHERE CURDATE() - INTERVAL 7 DAY > updateDt; FETCH cursor INTO tableName; END WHILE; CLOSE cursor; END;
이 논리는 지정된 데이터베이스의 모든 테이블을 반복하고 updateDt 열이 7일 이상 지난 행을 삭제합니다.
고려 사항
위 내용은 MySQL에서 연령에 따라 일일 행 삭제를 어떻게 자동화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!