从 stdin 导入 MySQL

标签 mysql bash awk

我正在使用 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/

相关文章:

php - 将 mysql TIME 从 24 HR 转换为 AM/PM 格式

linux - 在 Linux 中,如何在空闲期后注销用户,即使他们仍在程序中

perl - 如何使用 tr(1) 从非空行中删除换行符 ('\n' , 0x0A)?

regex - awk 树桩 : regex substitution within a field

linux - 在带参数的 shell 脚本中使用 awk?

PHP - 连接到多个 MySQL 数据库

MYSQL内连接有限制吗?

linux - 如何使用 sed 或 awk 命令根据另外两个变量的值设置一个变量

java - 如何在 opensuse 上连接到 mysql localhost?

linux - echo "."直到命令执行完毕