2010-05-11 88 views
1

如何在.sql文件中调用以下内容?帮助MySQL(.sql)和Shell脚本

mysql -u username -h serverip db -e "select a, b, c, d from mytable" > '/home/dump/result.txt'; 

然后,我将不得不将选项卡分隔文件转换为我想要使用sed的csv。

  1. 有没有办法在一个 行吗? (附加sed命令将 .txt文件转换为csv)
  2. 如何在.sql文件中使用 os.system调用?它会 工作吗?

回答

0

试试这个:

mysql --batch --skip-column-names -u username -h serverip db \ 
    -e "select a, b, c, d from mytable" \ 
    | sed -e 's/\t/,/g' \ 
    > '/home/dump/result.txt' 

--batch--skip-column-names文档的更多信息。

+0

谢谢比尔。我们正在将数据库服务器和客户端相同的场景迁移到单个服务器。我有一堆.sql文件与选择到outfile查询这将不再工作。有没有办法在.sql文件中执行你的解决方案? – user337672 2010-05-11 17:03:06

+0

mysql客户端没有任何选项直接输出到CSV。您将不得不将'sed'命令添加到调用mysql客户端的脚本中。 – 2010-05-11 17:35:11

2

怎么样运行通过mysql控制台客户端的查询:

SELECT ... FROM ... INTO OUTFILE '/path/to/file.csv' 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "\n" 
+0

我没有这个选项因为客户端服务器和数据库服务器不同。谢谢! – user337672 2010-05-11 16:31:56