2009-07-02 8 views
1

.sql 파일의 OUTFILE 문을 수동으로 절대 경로 이름을 지정하지 않고 .sql 파일 자체의 현재 작업 디렉터리 경로를 가리키는 방법이 있습니까? 지금과 같이 기본 위치는 작업중인 스키마의 데이터 디렉토리 (예 : C : \ progra ~ 1 \ mysql \ etc \ etc)입니다.Mysql outfile을 현재 작업 디렉토리로 보내시겠습니까?

감사합니다.

답변

0

스크립팅과 같은 것이 최선의 방법 일 것 같습니다. Perl 또는 PHP를 사용하여 cwd에있는 outfile을 사용하여 쿼리를 생성합니다.

-1

직접 입력하지는 않지만 명령 줄에서 mysql을 사용하여 유사한 기능을 사용할 수 있습니다.

첫째, 어떤 배경 : LOAD DATA INFILE 문이있는 당신이 에 로컬 파일 시스템에있는 파일에서 데이터를 읽을 수 있습니다 LOCAL 변형, LOAD LOCAL DATA INFILE; LOCAL이 없으면 서버의 지정된 위치에서 읽습니다. 불행하게도

, 항상서버 (예 : NFS 또는 CIFS 공유와 같은 서버 구성 마운트를 포함 할 수 있습니다)의 파일 시스템에 지정된 위치에 기록하는 SELECT INTO OUTFILE 문; LOCAL 해당 사항이 없습니다.

그러나 mysql 클라이언트 배치 에서 모드를 사용하여 이러한 기능에 근접 할 수

mysql -e 'SELECT * FROM db1.tbl1' -B > output.tsv 

-B 옵션은 배치 모드에서 실행하도록 문을 원인 때문에 쿼리 결과는 탭에 인쇄 테두리가없는 - 방식으로. > somefile.txt을 사용하면 해당 출력을 지정된 파일로 리디렉션 할 수 있기 때문에 FIELDS 또는 LINES 옵션이 SELECT INTO OUTFILE이 아니더라도 원하는만큼의 효과를 얻을 수 있습니다.

+0

mysql 서버의 OUTFILE 경로를 NFS/CIFS 등의 적절한 구성표를 사용하여 로컬 파일 경로 (디스크)로 내 보낸 다음 마운트 할 수 있습니다. –

+0

OP의 질문에 도움이되지 않지만 그 점을 포함하여 답변을 업데이트했습니다. 당신. –

관련 문제