일반 형식으로 재구성할 수 있도록 MySQL 테이블에 로드하려고 하는 클라이언트의 정규화되지 않은 이벤트 로그 CSV가 있습니다. CSV 파일의 각 열에 대한 필드가 있는 "CSVImport"라는 테이블을 만들었습니다. CSV에는 99개의 열이 포함되어 있으므로 이는 그 자체로 어려운 작업입니다.
으아악테이블에는 제약 조건이 없으며 count(INT로 표시), yes/no(BIT로 표시), 가격(DECIMAL로 표시) 및 텍스트 설명(TEXT로 표시)을 제외한 모든 필드에는 VARCHAR(256) 값이 포함됩니다. .
데이터를 파일로 로드해 보았습니다.
으아악테이블이 꽉 찼어요NULL
.
문제는 텍스트 소개에 두 줄 이상이 포함되어 있고 MySQL이 각 새 줄이 데이터베이스 행에 해당하는 것처럼 파일을 구문 분석한다는 것입니다. 아무 문제 없이 Open에 파일을 로드할 수 있습니다.
clientdata.csv 파일에는 2593개의 행과 570개의 레코드가 포함되어 있습니다. 첫 번째 행에는 열 이름이 포함됩니다. 내 생각에는 쉼표로 구분되어 있고 텍스트는 분명히 큰따옴표로 구분되어 있습니다.
업데이트:
질문이 있으시면 매뉴얼을 읽어주세요: http://dev.mysql.com/doc/refman/5.0/en/load-data.html
추론할 만큼 똑똑하게 LOAD DATA
문에 몇 가지 정보를 추가했으며 이제 올바른 수의 레코드를 로드합니다.
하지만 아직 완전히 NULL
기록이 많고, 로드되는 데이터 중 어느 하나도 올바른 위치에 있지 않은 것 같습니다.
P粉0578693482023-10-10 10:07:31
mysqlimport를 사용하여 테이블을 데이터베이스에 로드합니다. p> 으아악
저는 http://chriseiffel.com/everything-linux/how-to-import-a-large-csv-file-to-mysql/
에서 찾았습니다.구분자를 탭으로 만들려면 --fields-termerated-by='t'
P粉2104053942023-10-10 00:32:34
문제의 핵심은 CSV 파일의 열을 테이블의 열과 일치시키는 것 같습니다.
많은 그래픽 mySQL 클라이언트에는 이런 종류의 작업에 대한 매우 유용한 가져오기 대화 상자가 있습니다.
내가 가장 좋아하는 직업은 Windows 기반 HeidiSQL입니다. LOAD DATA
명령을 작성하기 위한 그래픽 인터페이스를 제공하며 나중에 프로그래밍 방식으로 재사용할 수 있습니다.
텍스트 파일 가져오기 대화 상자를 열려면 工具 > 导入 CSV 文件
: