mysql - 一次对不同的表运行相同的 sql 查询(bash 脚本)

标签 mysql bash shell

我想在我的 Linux 虚拟机终端中使用 bash 脚本一次将相同的列添加到我的多个表中。我的数据库中有三个表:
my_usa_table,
my_india_table,
my_germany_table

我想一次为这三个表添加以下列。
ALTER TABLE my_{$i}table ADD COLUMN state VARCHAR(120) AFTER address;
ALTER TABLE my
{$i}table ADD COLUMN zipcode VARCHAR(16) AFTER state;
ALTER TABLE my
{$i}_table ADD COLUMN language VARCHAR(100) AFTER zipcode;

这是我的 bash 脚本:

#!/bin/bash

declare -a country=("usa","india","germany")
for i in "${country[@]}"
do
    mysql -uroot -p testdb -e "ALTER TABLE my_{$i}_table ADD COLUMN state VARCHAR(120) AFTER address";
    mysql -uroot -p testdb -e "ALTER TABLE my_{$i}_table ADD COLUMN zipcode VARCHAR(16) AFTER state";
    mysql -uroot -p testdb -e "ALTER TABLE my_{$i}_table ADD COLUMN language VARCHAR(100) AFTER zipcode";

done

但是出现错误。请问我该如何解决?

最佳答案

尝试用这个 my_$i_table 替换 my_{$i}_table

关于mysql - 一次对不同的表运行相同的 sql 查询(bash 脚本),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34152335/

相关文章:

php - 为什么存储在 mysql 数据库中的 PDF 文件在下载时损坏/损坏?

regex - Sed 替换 URL 中的域

shell - 打印 CSV 的前 N ​​行,其中引用的字段可以包含换行符

linux - 命令正在终端上运行,但在 bash 脚本中没有给出语法错误

php - Cakephp - 无法将 bool 值更新为 true?

mysql - 在 D : drive instead of C: 中安装 MySql

bash - 如何将 foo ='bar baz' 传递给来自 cli 参数的命令

bash - 如何在 bash 中使用变量指定命令行参数

linux - 我的环境变量对系统上的其他用户安全吗?

mysql - 如何对 MySQL 表进行数据出现搜索