2012-01-10 43 views
14

當我試圖在的shell執行多在mysql的shell

 
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 


越來越語法錯誤執行多MySQL的

 
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 

所以,你有一個額外的<

爲了測試,您應該能夠用echo代替mysql -uroot -ppass mydb SQL,並獲得預期的確切SQL代碼。