用shell脚本通过while循环批量生成mysql测试数据的方法。
站在用户的角度思考问题,与客户深入沟通,找到宕昌网站设计与宕昌网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、申请域名、虚拟主机、企业邮箱。业务覆盖宕昌地区。
1、很多时候需要在mysql表中插入大量测试数据,下面分享一个用shell脚本通过while循环批量生成mysql测试数据的方法,你只需要根据你自己的表结构来生成sql语句即可。
复制代码代码如下:
#!/bin/bash
i=1;
MAX_INSERT_ROW_COUNT=$1;
while [ $i -le $MAX_INSERT_ROW_COUNT ]
do
mysql -uroot -proot afs -e "insert into afs_test (name,age,createTime) values ('HELLO$i',$i % 99,NOW());"
d=$(date +%M-%d\ %H\:%m\:%S)
echo "INSERT HELLO $i @@ $d"
i=$(($i+1))
sleep 0.05
done
exit 0
2、假定上面的shell脚本保存为create-data.sh,可以通过下面的命令来生成数据:
复制代码代码如下:sh create-data.sh 10000。(参数10000是要生成的数据条数。)
1、先添加完,删除所有重复的记录,再insert一次
insert into A select * from B;
insert into A select * from C;
insert into A select * from D;
2、删除重复的记录只保留一行
delete from A where name in (select id from t1 group by id having count(id) 1)and rowid not in (select min(rowid) from t1 group by id having
count(*)1);
3、记录一下这些重复的记录,
mysql -uroot -p123456 -Ddb01 -e 'select b.id from t1 b group by id having count(b.id) 1' | tail -n +2 repeat.txt
删除全部重复的记录
delete from A where name in (select name from t1 group by name having count(name) 1;);
再次插入多删的重复记录
#!/bin/sh
for id1 in `cat repeat.txt`;do
mysql -uroot -p123456 -Ddb01 -e "insert into A select * from B where id='${id1}'"
done
MySQL
打开MySQL数据库,然后在在MySQL中新建一个【student】表,创建列为ID和Name,如下图所示:
Excel
新建一张Excel,Excel列中的名字要与数据库中student的列名一样,如下图所示:
导入向导
右击数据库中的【student】表,在弹出的下拉菜单中选择【导入向导】,如下图所示:
选择数据格式
会弹出一个【导入向导】窗口,选择数据的格式,比如excel的格式为.xlsx,当然有的excel的格式为.xls,根据后缀名而定,如下图所示:
导入excel
然后要导入方才新建的excel文件,选择文件的存放位置,然后点击【打开】按钮即可,如下图所示:
选择sheet
然后选择要导入excel文件中的哪一个sheet,比如选择sheet1,然后点击【下一步】按钮,如下图所示:
导入模式
然后一直点击【下一步】按钮来到【导入模式】,勾选【添加:添加记录到目录表】选项,点击【下一步】按钮,如下图所示:
开始导入
点击【开始】按钮,当出现【Finished -Successfully】提示时即表示导入成功,如下图所示: