저 쿼리문으로 CSV 파일을 DB Table에 올릴 수 있는데...
문제는 CSV 파일의 이름이 매일 바뀐다는거에요...
ex)오늘이면 2019-03-22_파일이름.csv -> 내일 2019-03-23_파일이름.csv
야간근무라서 18시 출근해서 03시30분까지 미친듯이 이것저것 쳐보고, 찾아봤는데 답이 읎어요 ㅠㅠㅠㅠㅠ
저걸 찾아내야 리눅스 SQL Server에서 Sh를 만들어서 CronTab을 돌리는데................
진짜 저 시간동안 개드립도 못보고 ㅡㅡ
프로그래밍 질문) 매일 이름이 바뀌는 CSV를 어떻게 TABLE에 넣을 거신가요!
13개의 댓글
무분별한 사용은 차단될 수 있습니다.
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
옥탑방개드립
shell에서도 SQL 쿼리가 돌아가나여....
하나도 몰라서 리눅스 좀 배웠다는 사람한테 물어봤는데 안될거라던데...
그리고 결정적으로 돌려야 할 쿼리의 파일이름 속성이 변수를 아예 허용을 안한다는거 같아여ㅕㅕ ㅠㅠ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
옥탑방개드립
명령어들은 어찌어찌 우겨넣으면 되는데... 저 Load data가 변수를 인정을 안한다는거시 문제에오....
머법고환
#!/bin/bash
/usr/bin/mysql -u -p -D
echo "LOAD DATA LOCAL INFILE '/home/$(date +%d-%m-%Y")_파일이름.csv' INTO TABLE `table123`
FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n'
IGNORE 0 LINES"
이런식으로 하면 되지않을까 쉘로만들면
옥탑방개드립
오 PHP 올려주신거 이제 막 봤습니다. 출장 갔다 오느라고 신경을 못썼더니...
올려주신걸로 한번 시도는 해보겠습니다! 제발 되었으면 ㅠㅠ
머법고환
PHP아니고 쉘프로그램으로 짜라는 말이야
저렇게 해놓고 스케쥴링 걸어놓으면 아침마다 자동으로 업로드될듯
PHP로 짜서 아침마다 접속할때 인서트 시키는 방법이 보안상 더 좋긴한데
옥탑방개드립
예전에 올려주신 PHP 질문에도 올려주셨더라구요 ㅎㅎㅎ
어차피 사무실내의 폐쇄망이라 보안은 크게 신경 안쓰려구요!
머법고환
아 다른글이구나 ㅇㅋㅇㅋ
어그로학교수
FILE=$(ls | grep $(date +%F))
이거하면 파일정보 불러올수 있을거고
옥탑방개드립
아하... 그러면 LOAD DATA LOCAL INFILE FILE이 되는거군요?
참조 하겠습니다!
어그로학교수
#!/bin/bash
WORKSPACE='경로'
/usr/bin/mysql -u -p -D
cd $WORKSPACE
FILE=$(ls | grep $(date +%F))
echo "LOAD DATA LOCAL INFILE $WORKSPACE/$FILE INTO TABLE `table123` FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 0 LINES"
윗게이가 쓴거에 좀더쉽게 만들어봤는데 머 이런식으로하면될듯
옥탑방개드립
엇 그럼 돌려야 할 파일이 6개니까 echo가 6개, workspace가 1~6까지 있으면 되겠네요! 각각 폴더가 틀리니까....