Я пытаюсь загрузить файл в таблицу mysql, используя LOAD DATA INFILE
. Файл csv и таблица назначения имеют следующую структуру:
Файл /data/data.csv
,col1,col2,col3
,2101,val2,val3
Таблица
- col0ID = INT автономный
- col1 = INT
- col2 = VARCHAR
- col3 = VARCHAR
Когда я запускаю приведенный ниже сценарий, я получаю следующую ошибку: Error Code: 1366. Incorrect integer value: '' for column 'col1' at row 1
Я думаю, это из-за префикса запятой в начале строки. Если я удалю запятую в начале заголовка и строки, тогда импорт будет работать нормально.
Есть ли способ указать mysql загружать данные, игнорируя первую запятую в заголовке и строках? Или мне придется предварительно отформатировать файл с помощью кода (python или C #)?
фрагмент MySQL LOAD DATA
load data infile '/data/data.csv'
into table Staging
fields terminated by ',' enclosed by ''
lines terminated by '\r\n'
ignore 1 LINES
(col1,col2,col3)
set col0ID=null;
Как было предложено в комментариях, я рассмотрел аналогичный [вопрос] (Как пропустить столбцы в файле CSV при импорте в таблицу MySQL с помощью LOAD DATA INFILE?) И попытался использовать переменную в столбцах, например (@ discard, col1, col2, col3), но все равно не удается с той же ошибкой. В моем сценарии заголовок столбца также предваряется запятой. Похоже, мне, возможно, придется предварительно обработать и очистить файл перед импортом ....