2012-01-10 3 views
14

При попытке выполнить многострочный MySQL в shellscriptВыполнить многострочный MySQL в shellscript

 
mysql -uroot -ppass mydb <<<EOF 
SELECT * INTO OUTFILE 'table.csv' 
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
FROM mytable limit 1; 
EOF 


становится все синтаксические ошибки.

 
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'EOF' at line 1 

Каков правильный способ его создания?

ответ

10

Синтаксис bash heredoc является:

COMMAND <<InputComesFromHERE 
... 
... 
... 
InputComesFromHERE 

Так у вас есть дополнительный <.

Для тестирования вы должны быть в состоянии заменить mysql -uroot -ppass mydb SQL на echo и получить точный код SQL, как предполагалось.

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