Я хочу выполнить несколько запросов SQL в сценарии bash. Запросы загружают файлы с похожими именами. Например: 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
?