구 분 : 운영 tip
작성자 : 이선규 (neosky) (neosky(at)smileserv.com, admin(at)nple.com, http://seroot.com)
작성일 : 2010년 8월 18일
주로 자동화된 스크립트에서 쓰이는 것으로
특정시간에 특정쿼리로 추출한 데이터를 UPDATE나 INSERT 쿼리문으로 만들때 쓰입니다.
[명령형식]
1. SELECT 쿼리로 추출한 데이터 저장
mysql -B -u[아이디] -p[비밀번호] [DB이름] -e "[SELECT 쿼리문]" | perl -pe 's\t/,/g' > [추출 파일 이름]
2. SELECT 쿼리로 1차 추출한 데이터를 UPDATE/INSERT 쿼리문에 대입하여 쿼리 파일 생성
mysql -B -u[아이디] -p[비밀번호] [DB이름] -e "[SELECT 쿼리문]" | perl -pe 's\t/,/g' | awk -F ',' '{printf "[UPDATE/INSERT 쿼리문];\n", $1, $2, ... $n}' > [추출 파일 이름]
[사용예]
mysql -B -uroot -pserootpassword shop -e "SELECT id, sale_quantity, view FROM shop_products" | perl -pe 's/\t/,/g' |awk -F ',' '{printf "UPDATE shop_products SET id='"'"'%s'"'"',sale_quantity='"'"'%s'"'"',view='"'"'%s'"'"' WHERE shop_products.id='"'"'%s'"'"';\n", $1, $2, $3, $1}' > update_query.sql
* UPDATE 또는 WHERE 절 이후 컬럼명= 이후는 ' " ' " ' %s ' " ' " ' 입니다.
* SELECT 명령으로 컬럼 3개의 값을 DB테이블로 부터 추출한 다음 WHERE 절 이후 조건에 의한 UPDATE문을 만드는 쿼리입니다.


당신의 의견을 작성해 주세요.