for循环解决数据库批量导入sql语句

4 篇文章 0 订阅
1 篇文章 0 订阅

0X00

在测试过程中经常会需要造一些测试数据,由于在安装程序过程中会将数据库情况,就需要经以前准备好的表的sql语句导出来,安装后在导进去。

0x01

我们经常用的就是将全部的数据导出来再导进去,mysqldump用法不在此详述。

mysqldump -u$username -p$passwd database > test.sql
mysql -u$username -p$passwd database < test.sql

或者将部分的数据导出来再导进去

mysqldump -u$username -p$passwd database tables >test.sql
mysql -u$username -p$passwd database < test.sql

但是如果只需要导入部分的sql,且这些sql有点多呢?总不能写N个

mysql -u$username -p$passwd database < test1.sql
...
mysql -u$username -p$passwd database < testn.sql

有人说了,写到shell脚本中,自动执行去呗~~
但是(怎么又但是-_-||)如果每次的sql的不一样呢?还每次都该脚本吗?岂不是浪费时间,如果改错了?

0x02

批量导入,将sql语句放入某个文件内,遍历sql语句名称,然后执行,就不会每次都改脚本了。

比如 sql文件内存在多个语句

[xxx@localhost baoji]# ls sql/
account_cabinet_info.sql  account_device_base.sql  bs_smv_warning.sql            physical_conn_board.sql  xxx_ied_config.sql
account_cell_info.sql     bs_gos_ee.sql            physical_conn_board_port.sql  xxx_alarm_info.sql      strap_history.sql

写一个循环语句,如下:

sql(){
echo "导入数据库数据中。。。"
cd $dir/sql
files=$(ls $dir/sql)
for i in $files
    do
        mysql -u$username -p$passwd database< $i
    done
echo "导入完毕!"
}
[xxx@localhost xxx]# ./update.sh sql
导入数据库数据中。。。
导入完毕!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值