shell脚本执行sql文件及语句

本文介绍如何使用Shell脚本批量操作MySQL数据库,包括在多个数据库中创建相同结构的表、为同一表添加字段以及更新字段内容。通过示例脚本展示了如何高效地执行这些常见任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于经常操作数据库,遇到频繁建表、加字段、索引、修改数据等问题,大多是操作多个数据库,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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值