小智 8
正如@xdazz的答案所说,只需使用LOAD DATA LOCAL INFILE.我认为它是出于无知或懒惰而被贬低的.仔细阅读MySQL手册就会发现这是一个非常可行的答案.
在2016年,对于与大多数用户最相关的MariaDB,您可以这样做:
bash
awk '{ /* My script that spits out a CSV */ }' | mysql --local-infile=1 -u user -ppassword mydatabase -e "LOAD DATA LOCAL INFILE '/dev/stdin' INTO TABLE mytable FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"';"
显然,请务必阅读本手册并LOAD DATA INFILE根据具体情况更改选项.
xda*_*azz -3
是的,只需使用管道即可。
$ 你的命令 | mysql -u 用户 -p
抱歉,这个答案还不够。您不能将 csv 直接通过管道输出到 mysql。你必须做额外的工作才能使结果成为有效的sql。
或者,您可以考虑使用 mysql 本机load data infile语法,它支持将 csv 文件加载到数据库。