2011-09-19 2 views
0

오래된 레코드를 자동으로 삭제하는 방법이 있습니까? 각 레코드에는 타임 스탬프가 있습니다. 10 분 전의 타임 스탬프가있는 레코드를 삭제하고 싶습니다. mysql 내에서이 작업을 수행하는 방법이 있습니까? 아니면 타임 스탬프를 확인하고 삭제할지 여부를 결정할 외부 프로그램을 설정해야합니까?mysql 자체 레코드 삭제

+0

확인이 게시물 같은 뭔가 http://stackoverflow.com/questions/6560639/how-to-schedule-a-stored-procedure-in-mysql –

답변

2

트리거로 사용하는 것은 어떻습니까? 일부 테이블의 데이터 (삽입, 업데이트, 삭제)를 변경할 때마다 테이블의 이전 데이터를 삭제합니다.

아무도 아무데도 테이블의 데이터를 변경합니까 ?? 그런 다음 아무도 데이터를 낭비하지 않으면 왜 오래된 것을 지우겠습니까? :)

0

MySQL에서이 작업을 수행 할 수있는 방법이 없다는 사실을 알고 있다면 짧은 bash 스크립트를 작성할 수 있습니다. 아마도 하나의 라이너까지 작성하여 cron에서 실행할 수 있습니다. 해키,하지만 그 일을 할거야.

1

MySQL 5.1 이상에서는 타임 스탬프가 적은 테이블에서 삭제할 이벤트를 만들 수 있습니다. 10 분. 이벤트를 매분 또는 원하는대로 자주 실행하십시오. 자세한 내용은 the manual을 참조하십시오.

CREATE EVENT 'prune_table' 
ON SCHEDULE EVERY 5 MINUTE 
DO DELETE FROM myTable WHERE timestamp < NOW() - 600;