我正在尝试使用 bash 脚本将 MYSQL 视图的输出转储到 CSV 中。
作为灵感,我使用了这篇文章:How to use a bash script to write to a mysql table
奇怪的是 SELECT column1,column2,column3 FROM 语法工作正常,但是当你有大约 15 列时它是不切实际的......
SELECT count(*) FROM 也有效
但是 SELECT * FROM 会引发 MYSQL 语法错误
#!/bin/bash
fpath=/tmp/
fname=`date +%Y%m%d-%H%M%S`.csv
savedest=\'$fpath$fname\'
echo "Saving into"$savedest
params="-u root -p mydb"
s1="SELECT * FROM flat_view INTO OUTFILE "
s2=" FIELDS TERMINATED BY ','"
s3=" ENCLOSED BY '\"'"
s4=" LINES TERMINATED BY '\\n'"
selectend=";"
echo $s1$savedest$s2$s3$s4$selectend | mysql $params
我在想我没有正确地逃脱一些东西。
PS。这是 Centos 5.8 和 mysql Ver 14.12 Distrib 5.0.95