반응형
mysql 에서 로그를 남겨두는데,
용량을 많이 차지해서 일정기간이 지난후에 자동으로 삭제하도록 구성해 두었습니다.
기존에는 unix shell(bash) 코드를 이용해 처리했는데, 플랫폼(?) 호환성을 높이기 위해
sql query 로 바꿔보았습니다.
주절주절이야기 했지만, 코드는 간단합니다.
날짜를 구하는 것이 핵심(shell 이냐, sql 이냐 의 차이)
mysql 의 쿼리로만 작성하면 다음과 같습니다.
워낙 방법이 많아서, 그 중 하나의 방법이다. 라는 의미에서 남깁니다.
1년전, 하루전 등의 옵션은 아래 참조 링크에서 포맷옵션을 바꾸면 됩니다.
# 참조 : http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
출처: http://taemy.experlab.com/350
용량을 많이 차지해서 일정기간이 지난후에 자동으로 삭제하도록 구성해 두었습니다.
기존에는 unix shell(bash) 코드를 이용해 처리했는데, 플랫폼(?) 호환성을 높이기 위해
sql query 로 바꿔보았습니다.
주절주절이야기 했지만, 코드는 간단합니다.
날짜를 구하는 것이 핵심(shell 이냐, sql 이냐 의 차이)
LOGDATE=`/bin/date +%Y/%m/%d --date '1 month ago'`이런 간단한 코드입니다.(bash)
mysql log_db -e "delete from log where log_date < '$LOGDATE';"
mysql 의 쿼리로만 작성하면 다음과 같습니다.
mysql log_db -e "delete from log where log_date < DATE_FORMAT( CURDATE() + INTERVAL -1 MONTH , '%Y/%m/%d' ) ; "
DATE_FORMAT( CURDATE() + INTERVAL -1 MONTH , '%Y/%m/%d' )이 부분이 날짜를 구하는 부분입니다. ( MONTH 대신에 DAY 등.. )
워낙 방법이 많아서, 그 중 하나의 방법이다. 라는 의미에서 남깁니다.
1년전, 하루전 등의 옵션은 아래 참조 링크에서 포맷옵션을 바꾸면 됩니다.
# 참조 : http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
출처: http://taemy.experlab.com/350
반응형
'DB관련 > MySQL' 카테고리의 다른 글
YEAR() MONTH() 함수로 WHERE 검색 조건에 년, 월 기준으로 검색 조건 결과 얻는 방법 (0) | 2014.10.31 |
---|---|
[MySQL] 2개의 테이블 count(*) 합하기 (2개의 테이블 데이터 갯수 합산) (0) | 2011.08.03 |
MySQL root passwd forget 암호 변경법 (0) | 2011.07.14 |
[SQL] order by 정렬 두개 필드 주기 (0) | 2010.10.28 |
DECODE 함수 (0) | 2009.01.12 |
[펌]mysql 깨진 테이블 복구하기 (0) | 2008.07.14 |
[Mysql] 테이블 크래쉬 체크 Table 'user' is marked as crashed and should be rep.. (0) | 2008.04.10 |
[JSP]DB컨넥션풀 snaq.net (0) | 2008.02.01 |
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)
(로그인하지 않으셔도 가능)