Пустая строка в таблице после LOAD DATA INFILE

Я загружаю большое количество данных из CSV (я делаю это через MySQL Workbench):

LOAD DATA INFILE 'C:/development/mydoc.csv' INTO TABLE mydatabase.mytable CHARACTER SET utf8
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r';

Однако я замечаю, что после последней записи он продолжает добавлять пустую строку, полную нулей/нулей. Я предполагаю, что это из-за команды "LINES TERMINATED". Однако мне это нужно для правильной загрузки данных.

Есть ли способ обойти это/лучший SQL, чтобы избежать пустой строки в таблице?


person Tom    schedule 12.05.2010    source источник
comment
Что вы имеете в виду, добавляя пустую строку? Это добавление строки в файл или добавление строки в таблицу? Команда LINES TERMINATED указывает только макет входящего файла, она не создает ничего, о чем я знаю.   -  person brydgesk    schedule 12.05.2010
comment
Проверьте файл CSV, чтобы убедиться, что в конце файла нет пустых строк. Если в конце была одна пустая строка, это могло вызвать это.   -  person Ike Walker    schedule 12.05.2010
comment
@brygdesk: в таблицу добавляется пустая строка. @Ike Walker: в CSV нет пустых строк. Это как-то связано с этой командой.   -  person Tom    schedule 12.05.2010


Ответы (1)


Если у вас есть символ новой строки/CR в конце последней строки, команда загрузки попытается загрузить другую запись. Но поскольку после последней новой строки/CR нет данных, все столбцы пусты.

person JYelton    schedule 12.05.2010
comment
@YJelton: Спасибо, это более или менее то, что я понял. Однако, если я удалю его, данные не будут введены в строки, а будут странным образом забиты в одну строку. Есть ли альтернатива новой линейке? - person Tom; 12.05.2010
comment
Он импортирует одну строку, если вы удалите только последний символ новой строки/CR? Странный. Вы можете попробовать создать файл с другим разделителем для строк, заканчивающихся символом вертикальной черты (|). - person JYelton; 12.05.2010