簡體   English   中英

如何在一個腳本中同時執行 MySQL 查詢和 bash 命令?

[英]How to execute MySQL query and bash command together in one script?

我想在 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 查詢之后附加|$mysql ||exit 1來解決這個問題。 我還使用了 ghtorrent 項目的配置。 原始代碼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM