shell脚本执行sql文件及语句

由于经常操作数据库,遇到频繁建表、加字段、索引、修改数据等问题,大多是操作多个数据库,sql文件或语句不固定,最后选择shell脚本来执行
eg:

在这里插入图片描述
在这里插入图片描述

1.多库建相同的表

#/bin/bash
host='127.0.0.1'
dbUser='root'
dbPassword=''
sql_file='test.sql'
city_array=('bj' 'sh' 'tj')
type="test"
for city in ${city_array[@]};
do

    dbName=${type}'_'${city}
    echo $dbName
    #多库建表
    mysql -h $host -u $dbUser -p$dbPassword -f $dbName -e "source $sql_file";
done

2.多库同表新建字段

#/bin/bash
host='127.0.0.1'
dbUser='root'
dbPassword=''
city_array=('bj' 'sh' 'tj')
type="test"
for city in ${city_array[@]};
do
    dbName=${type}'_'${city}
    echo $dbName
    #多库增加字段
    mysql -h $host -u $dbUser -p$dbPassword -e "
    use $dbName;
    ALTER TABLE test_table1 ADD refresh_time int(11)  DEFAULT '0' COMMENT '刷新时间';
    notee
    quit";
done

3.多库同表同字段修改内容

#/bin/bash
host='127.0.0.1'
dbUser='root'
dbPassword=''
city_array=('bj' 'sh' 'tj')
type="test"
for city in ${city_array[@]};
do
    dbName=${type}'_'${city}
    echo $dbName
    #多库修改字段值
    mysql -h $host -u $dbUser -p$dbPassword -e "
    use $dbName;
    update test_table1 set contents=REPLACE(contents,'////','//') where contents like '//%';
    notee
    quit";
done

猜你喜欢

转载自blog.csdn.net/weixin_43697585/article/details/84108972
今日推荐