姚强 2020-01-08
1、当我们测试的时候需要大量的数据的时候,往往需要我们自己造数据,一条一条的加是不现实的,这时候就需要使用脚本来批量生成数据了。
import pymysql import random import string # 建立数据库连接 mysql = pymysql.connect(host="数据库IP", user="数据库用户名",port=3306,password="数据库密码", charset=‘utf8‘, autocommit=True) # 建立游标 cursor = mysql.cursor(pymysql.cursors.DictCursor) # 定义要执行的SQL语句 for i in range(1,200001): # for循环来组合新增语句 jbxx_unid =8183 + i # ID从目前数据库中最大的一个开始 # UUID是32位字母加数字组成,所以先生成随机26位字母加数字随机数,然后加上序号保证UUID的唯一性 ran_str = ‘‘.join(random.sample(string.ascii_letters + string.digits, 26)) i_len = len(str(i)) if i_len == 1: jbxx_uuid = ran_str.lower() +"00000" + str(i) elif i_len == 2: jbxx_uuid = ran_str.lower() + "0000" + str(i) elif i_len == 3: jbxx_uuid = ran_str.lower() + "000" + str(i) elif i_len == 4: jbxx_uuid = ran_str.lower() + "00" + str(i) elif i_len == 5: jbxx_uuid = ran_str.lower() + "0" + str(i) else: jbxx_uuid = ran_str.lower() + str(i) # 需要插入数据的数据要唯一性的都加循环数字 jbxx_psid = 9998942509 + i jbxx_name = "test" + str(i) # 新增的SQL语句,用format来替换我们的参数。 sql = """ INSERT INTO `myslave`.`t_ps_jbxx` ( `jbxx_unid`, `jbxx_uuid`, `jbxx_cdate`, `jbxx_udate`, `jbxx_psid`, `jbxx_name`, `jbxx_sex`, `jbxx_mz`, `jbxx_zbm`, `jbxx_zbmczqk`, `jbxx_gj`, `jbxx_sjf`, `jbxx_swf`, `jbxx_whcd`, `jbxx_tctsjn`, `jbxx_birthday`, `jbxx_sfzhm`, `jbxx_age`, `jbxx_zjxy`, `jbxx_xycd`, `jbxx_bqmm`, `jbxx_bqzy`, `jbxx_rjqzw`, `jbxx_zffl`, `jbxx_cyjb`, `jbxx_sisheqk`, `jbxx_sishiqk`, `jbxx_gldj`, `jbxx_hkfl`, `jbxx_jjs`, `jbxx_yyymjjsqk`, `jbxx_ypxqq`, `jbxx_ypxqz`, `jbxx_xxqq`, `jbxx_xxqz`, `jbxx_ypxq`, `jbxx_xxq`, `jbxx_yx`, `jbxx_dbjg`, `jbxx_dbrq`, `jbxx_spjg`, `jbxx_pjrq`, `jbxx_rjsj`, `jbxx_rdsj`, `jbxx_gydw`, `jbxx_drdw`, `jbxx_dbddqk`, `jbxx_grjl`, `jbxx_zybz`, `jbxx_curs`, `jbxx_arcode`, `jbxx_isFull`, `jbxx_abbr`, `jbxx_lgf`, `jbxx_sfzk`, `jbxx_sfxxy`, `jbxx_sfem`, `jbxx_password`, `jbxx_hy`, `jbxx_zm`, `jbxx_xxytype`, `jbxx_epassword` ) VALUES ( ‘{0}‘, ‘{1}‘, ‘2018-03-23 16:25:37‘, ‘2020-01-07 15:31:51‘, ‘{2}‘, ‘{3}‘, ‘1‘, ‘15‘, NULL, NULL, ‘520600‘, NULL, NULL, ‘80‘, NULL, ‘1974-07-08 00:00:00‘, NULL, ‘45‘, ‘00‘, NULL, ‘13‘, ‘90000‘, ‘000‘, ‘1‘, NULL, ‘‘, NULL, NULL, NULL, NULL, NULL, ‘2006-12-05 00:00:00‘, ‘2022-09-04 00:00:00‘, ‘2006-12-05 00:00:00‘, ‘2022-09-04 00:00:00‘, ‘150900‘, ‘150900‘, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ‘3319‘, NULL, NULL, NULL, ‘1‘, ‘0c3be3ee22ab48158433bf0a054edad8‘, ‘3319110000‘, ‘0‘, ‘HPJ‘, NULL, NULL, ‘0‘, ‘0‘, ‘123456789‘, ‘20‘, ‘盗窃、抢劫‘, ‘SWFXXY‘, ‘‘ ); """.format(jbxx_unid,jbxx_uuid,jbxx_psid,jbxx_name) # 执行SQL语句 cursor.execute(sql) print("成功插入{}条数据!".format(i)) # 关闭光标对象 cursor.close() # 关闭数据库连接 print("插入完成所有数据!关闭数据库连接!") mysql.close()