2013-08-27 2 views
0

Я хочу, чтобы импортировать текстовый файл в базу данных MySQL, используя командуКак импортировать текстовый файл в MySQL держать специальные символы

LOAD DATA LOCAL INFILE 'c:/mydatabase.txt' INTO TABLE mytable COLUMNS TERMINATED BY '\t' 

Однако один столбцом данных является путь_к_файлом, который содержит специальный символ, как «\ ». Я обнаружил, что команда import выше просто пропустила все «\» в строке пути.

Есть ли способ сохранить специальный charater при импорте данных в mysql?

ответ

0

LOAD DATA INFILE также поддерживает пункт FIELDS ESCAPED BY, который позволяет определить, какой характер MySQL использует для выявления специальных символов в строку, например, одинарные кавычки внутри одинарных кавычках строки или символы табуляции (как у вас есть в вашем FIELDS TERMINATED BY , представленный как \t).

Значение по умолчанию для FIELDS ESCAPED BY: \, обратная косая черта, поэтому ваши символы пути интерпретируются MySQL и затем игнорируются; экранирование неспециального символа просто возвращает этот символ, поэтому \1 просто возвращает 1. Однако у вас возникнут проблемы с именами файлов, такими как c:\tmp\newfile, потому что оба \t и \n интерпретируются как специальные символы.

Если вы оставите символ пробела пустым, выполнив FIELDS ESCAPED BY '', ваш импорт не будет интерпретировать обратную косую черту, но у вас могут быть другие проблемы, если в импорте есть символы, требующие экранирования. Вы узнаете об этом, узнав, какой escape-символ использовался для генерации текстового файла, и вы можете использовать его в своем предложении FIELDS ESCAPED BY.

+0

Да, подтверждено, с: LOAD DATA LOCAL INFILE 'c: /mydatabase.txt' INTO TABLE mytable FIELDS TERMINATED BY '\ t' ESCAPED BY '' Я могу импортировать путь к файлу с помощью "\" правильно. Благодарю. – user2571369

Смежные вопросы