2010-11-22 2 views
1

Когда я запускаю следующий запросСинтаксическая ошибка при использовании SELECT INTO Outfile

SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt' 
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
    FROM test_table; 

, который прямо из документации MySQL, я получаю ошибку синтаксиса. У меня нет таблицы test_table, и я понимаю, что этот оператор на самом деле не работает, но, похоже, он не должен давать синтаксическую ошибку. Если я получаю синтаксическую ошибку на что-то прямо из документации MySQL, что может быть?

Это документ я смотрю на (5.1): http://dev.mysql.com/doc/refman/5.1/en/select.html

Это моя версия MySQL:

mysql Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (i686) using readline 6.1 
+0

Вы пытаетесь использовать путь для Windows для OUTFILE любой шанс? Символ обратной косой черты - это escape-символ внутри строковых литералов MySQL. – 2010-11-22 20:39:38

+0

Нет. Я использую именно код выше. Хорошая мысль. – 2010-11-22 20:40:58

+0

Возможно, из-за ошибки: http://bugs.mysql.com/bug.php?id=58601 по умолчанию workbench slaps «Limit 1000» в запросе select – 2011-04-26 21:25:23

ответ

0

Этот код работает для меня.

Сначала у меня была ошибка Unknown table 'test_table' in my_db.

После создания таблицы CREATE TABLE test_table (a VARCHAR(255), b VARCHAR(255)) это просто сработало. Нет синтаксической ошибки.

Edit:

Выполнение запроса от официального клиента mysql командной строки можно избежать возможных ошибок в клиенте GUI и дать более точные сообщения об ошибках.

0

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

PHP:

$sql = "SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'" 
    . " FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"'" 
    . " LINES TERMINATED BY '\\n'" 
    . " FROM test_table;"; 
Смежные вопросы