mysql - 如何在一个脚本中同时执行 MySQL 查询和 bash 命令?
问题描述
我想在 bash 脚本中执行多个 SQL 查询。查询正在加载具有相似名称的文件。例如:File1.csv, File2.csv ...我知道我可以使用
mysql -u root -p <<EOF
MYSQL QUERY 1
MYSQL QUERY 2
...
我可以在这些查询中使用 bash 变量吗?我也尝试过类似的代码
for f in $dir; do
echo "SET foreign_key_checks = 0; LOAD DATA LOCAL INFILE '$f' INTO TABLE $table CHARACTER SET UTF8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n';"
done`
但是,我最后一次执行这样的脚本时,我的表崩溃了。我用来编写上述脚本的示例脚本是
for f in $dumpDir/*.csv ; do
table=`basename $f|cut -f1 -d'.'`
echo "`date` Restoring table $table"
echo "SET foreign_key_checks = 0; LOAD DATA LOCAL INFILE '$f' INTO TABLE $table CHARACTER SET UTF8 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n';" |$mysql || exit 1
done
我的桌子是否因为我错过了零件而崩溃了|$mysql || exit 1
?
解决方案
|$mysql ||exit 1
我通过在 MYSQL 查询之后附加来解决这个问题。我还使用了来自 ghtorrent 项目的配置。原始代码
推荐阅读
- c++ - 文本文件行删除
- python - 使用python从概念中提取数据
- apache - 全局阻止所有 xmlrpc.php 请求 cpanel 服务器
- ms-access - 使用日期范围从数据库生成可打印报告
- java - RecyclerView 中的 Exoplayer
- flume - 在 Intellij 中运行 Apache Flume
- php - 通过 AWS PHP SDK 和 AWS AppConfig 访问时,内容字段为空
- r - 在 quantreg 包中滥用 predict.rq?
- python - 使用回溯对字符串进行排列:达到最大递归限制
- javascript - 尝试在 Vuejs 的输入字段内添加占位符时出错?