1. 程式人生 > 其它 >Mysql指令碼 生成測試資料

Mysql指令碼 生成測試資料

使用:
./xie.sh -uroot -p'123456'

#!/bin/bash
#混合測試資料庫指令碼
#將建立一個single資料庫,其中建立一個s1表
#如果資料庫存在,將會寫入資料,可以在寫入部分sleep 1 來讓資料持續寫入
#使用方法 ./xx.sh -uroot -p'123456'



#檢查
mysql $* -e "show databases;" &> /tmp/info_error.txt
if [[ $? -ne 0 ]];then
    echo "time:$(date +%F-%H-%M-%S) info:登陸命令錯誤"
    cat /tmp/info_error.txt #如果錯誤則顯示錯誤資訊
    echo
    echo "./xx.sh -uroot -p'123456'"
    exit 1
fi

#檢查庫是否存在
mysql $* -e "use single;" &> /tmp/info_error.txt
if [[ $? -eq 0 ]];then
    mysql $* -e "use single;select * from s1 where id=1;"
    if [[ $? -ne 0 ]];then
        mysql $* -e "use single;drop table s1;"
        mysql $* -e "use single;create table s1(id int AUTO_INCREMENT PRIMARY KEY,name char(20),age int);"
    fi
else
    mysql $* -e "create database single;" 
    mysql $* -e "use single;create table s1(id int AUTO_INCREMENT PRIMARY KEY,name char(20),age int);"
fi

#name隨機數
random_name() {
    local zu=(q w e r t y u i o p a s d f g h j k l z x c v b n m)

    for i in `seq 1 5`
    do
        local a=`echo $[RANDOM%24]`
        echo -n ${zu[a]}
    done
}

#age隨機數
random_age() {
    local a=`echo $[RANDOM%99]`
    echo $a
}



#寫入部分
for i in `seq 1 10000`
do
	b=`random_name`
    c=`random_age`
	sleep 2
	mysql $* -e "use single;insert into s1(name,age) values('${b}',${c});"
done
本文版權歸作者所有,歡迎轉載,請務必新增原文連結。