텍스트 파일에 줄 접두어가 있는 경우 'LINES STARTING BY' 옵션을 사용하여 해당 접두어를 무시하고 올바른 데이터를 MySQL 테이블로 가져올 수 있다고 가정합니다. 다음 예의 도움으로 이해할 수 있습니다 -
예시
다음과 같이 텍스트 파일의 'LINE PREFIX'로 'VALUE'를 사용한다고 가정합니다. -
id, Name, Country, Salary VALUE:105, Chum*, Marsh,USA, 11000 106, Danny*, Harrison,AUS, 12000
이제 이 텍스트 파일을 MySQL 테이블로 가져오는 동안 다음과 같이 쿼리에서 'LINES STARTING BY' 옵션도 언급해야 합니다. -
mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee8_tbl FIELDS TERMINATED BY ',' ESCAPED BY '*' LINES STARTING BY 'Value:' IGNORE 1 ROWS; Query OK, 1 row affected (0.07 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
이제 다음 쿼리를 통해 가져온 항목을 확인할 수 있습니다.
mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee8_tbl FIELDS TERMINATED BY ',' ESCAPED BY '*' LINES STARTING BY 'Value:' IGNORE 1 ROWS; Query OK, 1 row affected (0.07 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
이제 다음 쿼리를 통해 가져온 항목을 확인할 수 있습니다.
mysql> Select * from employee8_tbl; +------+----------------+----------+--------+ | Id | Name | Country | Salary | +------+----------------+----------+--------+ | 105 | Chum,Marsh | USA | 11000 | +------+----------------+----------+--------+ 1 row in set (0.00 sec)
MySQL은 첫 번째 줄 앞에 줄 접두사, 즉 'VALUE:'를 사용했기 때문에 테이블에서 하나의 레코드만 가져오므로 줄 접두어가 없는 줄은 무시합니다. 이제 텍스트 파일에 라인 접두사 'VALUE:'가 있는 다른 라인을 추가하면 MySQL이 이 라인도 업로드한다고 가정합니다. -
id, Name, Country, Salary Value:105, Chum*, Marsh,USA, 11000 106, Danny*,Harrison, AUS, 12000 Value:107, Raman*,Kumar, IND, 25000
mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee8_tbl FIELDS TERMINATED BY ',' ESCAPED BY '*' LINES STARTING BY 'Value:' IGNORE 1 ROWS; Query OK, 2 rows affected (0.07 sec) Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
이제 다음 쿼리를 통해 가져온 항목을 확인할 수 있습니다.
mysql> Select * from employee8_tbl; +------+----------------+----------+--------+ | Id | Name | Country | Salary | +------+----------------+----------+--------+ | 105 | Chum,Marsh | USA | 11000 | | 107 | Raman,Kumar | IND | 25000 | +------+----------------+----------+--------+ 2 rows in set (0.00 sec)