2012-01-10 44 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代码。