SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.05.2019 10:24:16

lalaland
Участник
Зарегистрирован: 16.05.2019
Сообщений: 6

При загрузке через LOAD DATA LOCAL INFILE нахожу ошибки в базе

Добрый день, всем.
Подскажите пожалуйста ни у кого не было такой ситуации:
Загружаю большие данные через LOAD DATA LOCAL INFILE 'base.txt' INTO TABLE `stable` CHARACTER SET utf8 FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' - записей 115 тысяч. Загрузил посмотрел вроде всё хорошо. Но когда начинаю выводить данные нашел косяки. Захожу в базу данных и вижу, что часть данных таблицы съехала.
Большая часть таблицы выглядит идеально так:
Id name description total color
1  tovar1 super       150   green
2  tovar2 good        100   yellow

А вот часть таблицы где всё съехало - исчезла часть данных в поле name, и тем самым поле color пустое.
Id         name     description    total      color
87860  bad          150            green
87861  good         100           yellow

Пробовал и через csv, результат такой же.
Делил файл на несколько частей и загружал сначала с одного, потом со второго. Но никак не мог найти в чем проблема.
Спасибо.

Неактивен

 

#2 16.05.2019 10:26:30

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: При загрузке через LOAD DATA LOCAL INFILE нахожу ошибки в базе

А точно ли у Вас на каждой строке в csv-шке есть данные и нужное количество разделителей?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 16.05.2019 10:32:58

lalaland
Участник
Зарегистрирован: 16.05.2019
Сообщений: 6

Re: При загрузке через LOAD DATA LOCAL INFILE нахожу ошибки в базе

Ну да, в csv точка с запятой -  делаю через FIELDS TERMINATED BY '\;'. 
Все данные готовлю через Excel (там я в каждом столбце проверяю данные через фильтр)   - затем копирую в txt файл и сохраняю в csv.

Неактивен

 

#4 16.05.2019 10:37:15

lalaland
Участник
Зарегистрирован: 16.05.2019
Сообщений: 6

Re: При загрузке через LOAD DATA LOCAL INFILE нахожу ошибки в базе

Есть конечно и такие данные в таблице <font color="green">color</font> - но если в этих символах проблема, тогда почему остальные нормально записались такие же

Неактивен

 

#5 16.05.2019 10:40:07

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: При загрузке через LOAD DATA LOCAL INFILE нахожу ошибки в базе

Начиная с какой строки начинается проблема? Как я понял, сначала записи "хорошо" вставляются, а потом начинаются проблемы?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#6 16.05.2019 10:53:43

lalaland
Участник
Зарегистрирован: 16.05.2019
Сообщений: 6

Re: При загрузке через LOAD DATA LOCAL INFILE нахожу ошибки в базе

Начинается на 87170 строке, затем это безобразие заканчивается на строке 87234 и дальше идет всё норм.

Неактивен

 

#7 16.05.2019 11:02:36

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: При загрузке через LOAD DATA LOCAL INFILE нахожу ошибки в базе

Я не про номер :-), а скорее к тому, что, видимо, на строке 87169 что-то не то - попробуйте убрать ее из исходного файла и посмотреть, пропадет ли безобразие (или отложится как минимум). Ничего подозрительного в строке не видно?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#8 16.05.2019 11:48:34

lalaland
Участник
Зарегистрирован: 16.05.2019
Сообщений: 6

Re: При загрузке через LOAD DATA LOCAL INFILE нахожу ошибки в базе

я вчера убирал этот диапазон и прибавлял на две строки вначале и конце диапазона. Всё равно не могу понять в чем загвоздка. Потом на строке 87670, хотя до этого эта строка была норм. Эти действия я вчера все делал, чтобы увидеть хоть какую-то подсказку. Может как-то экранировать поля?

Неактивен

 

#9 16.05.2019 11:55:32

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: При загрузке через LOAD DATA LOCAL INFILE нахожу ошибки в базе

Боюсь, что здесь только один путь - сперва найти строку, начиная с  которой  все ломается - потом уже её "препарировать". Как убедитесь, что все ломает конкретная строка - шлите её сюда.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#10 16.05.2019 12:33:45

lalaland
Участник
Зарегистрирован: 16.05.2019
Сообщений: 6

Re: При загрузке через LOAD DATA LOCAL INFILE нахожу ошибки в базе

Возможно ли что проблема была в двух пробелах? Я заменил два пробела на один и всё стало норм.

Неактивен

 

#11 17.05.2019 08:26:26

klow
Старожил
Зарегистрирован: 06.12.2014
Сообщений: 411

Re: При загрузке через LOAD DATA LOCAL INFILE нахожу ошибки в базе

Скорее это не пробелы, а табуляция (\t) - разделитель полей.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson