我正在使用 awk 在标准输出中生成一个 csv。 有没有一种方法可以直接将这些内容导入 mysql 而无需将其写入文件?
最佳答案
正如@xdazz 的回答所说,只需使用LOAD DATA LOCAL INFILE
。我认为它是由于无知或懒惰而被否决的。快速阅读 MySQL 手册会表明这是一个完全可行的答案。
在 2016 年,对于与大多数用户最相关的 MariaDB,您可以这样做:
庆典
awk '{/* 我的脚本输出一个 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
以适合您的特定情况。
关于从 stdin 导入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12968715/