Mysql Cron설정

2009. 3. 16. 22:48 from DB/MYSQL


cd 백업경로
vi 백업파일
#!/bin/sh
DATE=`date +"%Y%m%d"`
PREV_DATE=`TX=KST+15 date +"%Y%m%d"`
echo ${PREV_DATE}
BACKUP_DIR=/백업경로(/db/backup)
/db.mysql-5.0.60/bin/mysqldump -u karts -pkarts1234 karts > ${BACKUP_DIR}/karts_${DATE}.sql
rm -Rf ${BACKUP_DIR}/karts_${PREV_DATE}.sql

:wq


CRONTAB 설정
crontab -i // 크론 설정을 볼수 있음

crontab -e // 크론 설정 편집
//솔라리스
EDITOR=vi
export EDITOR
crontab -e

편집
*//분*//시*//일*월*//년 실행경로

Posted by 마라경대 :
select date_add(now(), INTERVAL -2 MONTH)

3월 29일에서 한달전 조회하려면 자바에서 calendar객체도 가져와야 하고 귀찮습니다.
DB에서 제공하는 기능을 사용하면 한줄에 땡.

위의 인터넷 뒤에
+- 증가값과 증가단위 YEAR, MONTH, DAY등을 사용하시면 자유롭게 셀렉트 가능!
Posted by 윤재현 :
일대 다 관계의 두 테이블에서
A 테이블의 제목과 B 테이블의 시간을 출력하게 되면
결과물이 B 테이블의 시간 레코드 수 만큼 출력되는데

select
A.ATITLE
,GROUP_CONCAT( B.BTIME SAPARATOR '|' )
from tableA A
left join tableB B on A.seq = B.fseq

와 같이하여 한번에 여러행의 결과를 그룹으로 출력할 수 있다.

A테이블의 데이터가 아래와 같고

ENO, ETITLE
22    테스트
23    테스트2
24    공연
31    테스트
32    인형극 '나의 열살'

B테이블의 데이터가

22    2009-02-05 오후 12:12:00
23    2009-02-15 오전 11:11:00
23    2009-02-16 오후 12:12:00
24    2009-02-12 오전 1:01:00
24    2009-02-13 오전 1:01:00
24    2009-02-14 오전 1:01:00
24    2009-02-15 오전 1:01:00
24    2009-02-16 오전 1:01:00
24    2009-02-17 오전 1:01:00
24    2009-02-18 오전 1:01:00
24    2009-02-19 오전 1:01:00
24    2009-02-20 오전 1:01:00
31    2009-02-12 오후 1:24:00
31    2009-02-14 오후 2:15:00
31    2009-02-16 오후 10:33:00
32    2009-02-28 오후 12:12:00

위와 같다면

select * from(
select 
A.ENO
ETITLE
,group_concat( substr(B.ETDATE, 1, 16) SEPARATOR  ' \\| ' ) as ETDATE
from tblexhibition A
left join 
tblexhibitiontime B on A.ENO = B.ENO
group by A.eno
)E
이런 쿼리를 이용해서

22    2009-02-05 오후 12:12:00
23    2009-02-15 오전 11:11:00|2009-02-16 오후 12:12:00
24    2009-02-12 오전 1:01:00|2009-02-13 오전 1:01:00|2009-02-14 오전 1:01:00 ~~~
형식으로 레코드를 합칠 수 있다.

다른 DBMS에서는 동일한 기능을 수행하는 함수를 찾지 못했음.
Posted by 윤재현 :