Как установить нулевые значения при импорте в phpmyadmin? - PullRequest
3 голосов
/ 13 января 2011

Я пытаюсь импортировать файл .csv в phpmyadmin, где несколько полей намеренно оставлены пустыми. Мне нужно, чтобы эти поля регистрировались как нулевые значения, а не просто оставались пустыми.

Я знаю, что в свойствах поля вы можете выбрать «пустое» и «не нулевое» для каждого поля, но оно все равно не меняет ячейку на нулевое значение при импорте. После импорта я могу вручную установить флажок NULL для каждого поля каждой записи, но это нереально, учитывая объем данных, с которыми я работаю.

Есть ли способ заставить phpmyadmin установить для этих пустых ячеек нулевые значения при импорте?

Ответы [ 3 ]

6 голосов
/ 15 февраля 2011

У меня были подобные проблемы.

Если вы загрузите файл PhpMyAdmin CSV со значениями NULL, вы заметите, что NULL не инкапсулируется в кавычки. Таким образом, у вас будет такая строка:

"1", "2"; NULL; NULL

"2", "2", NULL, NULL

и т.д.

Однако, если вы редактируете CSV-файл в чем-то вроде Open Office Calc, это может изменить это, чтобы заключать в кавычки NULL, например:

"1", "2", "NULL"; "NULL"

"2", "2", "NULL", "NULL"

и т.д.

Что должно работать, так это выполнять поиск и замену ["NULL" = NULL].

В вашем случае, поскольку у вас есть пустые (пустые) поля, вы будете искать поиск и заменить его следующим образом:

[,, =, NULL,]

И, возможно, второй проход для значений NULL в конце строки, например:

[, \ n =, NULL \ n]

0 голосов
/ 11 июля 2017

Древний вопрос, но в случае, если другой нуб MySQL встретится с ним.

Ригамароль jmbertucci, описывающий поиск / замену, можно избежать, если вы отвечаете за создание Файл CSV, например, при резервном копировании ваших собственных баз данных.В phpMyAdmin, если вы выберете «пользовательский» метод экспорта, вы увидите replace NULL with:, а по умолчанию будет NULL.Просто измените это на "NULL" и вы сэкономите себе шаг.

0 голосов
/ 31 марта 2016

Я столкнулся с той же проблемой, и ответ jmbertucci работал отлично. Я столкнулся с одной дополнительной проблемой. В случае с рядом данных, таких как

"hello","world",,,,,,

с несколькими наборами нулевых значений в строке, выполняющих поиск, заменяют на [,, =, NULL,], как предположил jmbertucci, не будет работать так, как вы предполагаете на первом проходе. Вместо этого вы получите

"hello","world",NULL,,NULL,,NULL

Вы должны продолжать выполнять замену поиска до тех пор, пока не получите 0 замененных вхождений

...