重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用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是要生成的数据条数。)
如何导入.sql文件到mysql中
首先:建立数据库,用这个命令:create
database
dbname;
其中dbname是数据库名称
C:\mysql\binmysql
-u
用户名
-p
数据库名
mysql
-u
root
-p
myrosz
c:/myro.sql
Enter
password:
****
稍等一会,就可以导入数据表。
insert into tablename values(value1,value2,...) insert into tablename(fieldname1,fieldname2,...) values(value1,value2,...) insert into tablename(fieldname1,fieldname2) select fieldname1,fieldname2 from tablename1 以上基本上罗列了用insert插入数据的方法,当然你也可以用insert语句将几行同时插入到一个表中.如下所示: 2.在mysql运行环境下,我们还可以用LOAD DATA 语句把文件里面的数据读取录入到表里面.一般来讲,因为此文件是由服务器在主机上直接读取的.所以你必须具有file权限且文件必须是完全可读.当你版本够新的话,你可以给出local,这样由于你是从客户机上读取该文件并将内容传送到服务器,你就不需要file权限. 如果你没有给出local,则服务器按如下方法对其进行定位: 1)如果你的filename为绝对路径,则服务器从根目录开始查找该文件. 2)如果你的filename为相对路径,则服务器从数据库的数据目录中开始查找该文件. 如果你给出了local,则文件将按以下方式进行定位: 1)如果你的filename为绝对路径,则客户机从根目录开始查找该文件. 2)如果你的filename为相对路径,则客户机从当前目录开始查找该文件. 说了半天,也许你还不明白这具体的格式,看下面先: LOAD DATA [LOCAL] INFILE 'filename' into table tablename import_options [(fieldname_list)] import options的语法为:fieldsterminated by 'char' enclosed by 'char' escaped by 'char'linesterminated by 'string' 下面我们对其进行一些说明: 1)fields terminated by char 指定分隔列的字符.缺省时假定列值由制表符分隔. 2)fields enclosed by char 指明列值应包括在指定的字符中.通常用引号.缺省时,假定列值不包括在任何字符中. 3)fields escaped by char 表示用于转义特殊字符的转义符.缺省时表示无转义符 4)lindes escaped by string 指定结束输入行的串(可以是多字符的).缺省时假定由换行符终止行 需要注意的是转义字符的使用. 如:\' 表示单引号,\" 表示双引号 等等.另外还有一些选项这里没有具体谈到,如 ignore n lines 她可以控制文件的前n行不被读入数据库.详细请看mysql中文参考. 说了上面这么多,给一行命令大家具体体会一下: load data [local] infile "sample.txt" into table sample fields terminated by "," enclosed by "\"" 3.在系统命令行下你可以用mysqlimport实用程序,她将文本文件的内容读取到已有表中(其实mysqlimport起的作用就是实现load data命令行的接口),调用完mysqlimport后她生成一个load data 语句.语法基本上和load data差不多: mysqlimport [options] sample_db filename 同样,给条命令看一下吧: