답변:
mysqlimport로는 불가능하지만 대안으로 다음을 수행 할 수 있습니다.
mysql --execute="LOAD DATA LOCAL INFILE '$WORKDIR/$table.csv' INTO TABLE $table FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' IGNORE 1 LINES (listOfColumnNames); SHOW WARNINGS"
교체 listOfColumnNames
열의 적절한 구분 목록.
마술은 (이전에 언급 한 Eduard와 같이) mysqlimport는 경고를 직접 얻을 수있는 방법을 제공하지 않기 때문에 동일한 세션에서 LOAD DATA INFILE과 SHOW WARNINGS 명령을 함께 실행하는 것입니다.
tables.csv
로컬 파일 인 경우 (즉, 데이터베이스 서버에없는 경우 ) 이 작업이 작동합니까 ?
mysql -u root --execute="LOAD DATA LOCAL INFILE 'c:\\crp\\blah3.csv' INTO TABLE blah3 FIELDS TERMINATED BY ','; SHOW WARNINGS" whateverdbnameegcsv_db
관련 stackoverflow.com/questions/14127529/…
mysql> LOAD DATA LOCAL INFILE 'c:\\crp\\blah5.csv' INTO TABLE blah5 CHARACTER SET UTF8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; SHOW WARNINGS;
언급 된대로 utf8에 대해 추가 할 수 있습니다. stackoverflow.com/questions/4957900/…
0
것이므로 위의 스크립트를 작성할 때 가져 오기가 성공했는지 여부를 확인하기 위해 명령 출력을 구문 분석해야한다고 생각합니다 (?)
mysqlimport로 경고를 인쇄하는 방법도 찾지 못했습니다. 그러나 mysqlimport는 "LOAD DATA INFILE"만을 수행하지 않으므로 mysql 명령을 사용하여 데이터를 가져오고 "SHOW WARNINGS"를 표시하지 않는 이유는 무엇입니까?