#python实现批量插入数据到mysql表中,需求是表1与表2插入某字段的值要一致(且是10位的数字),且表2的另一个字段要插入特定的值(在文件中)
import pymysql
import random
db = pymysql.connect(
host='XXX',
port=端口,
user='用户名',
password='密码',
database='库名',
charset='utf8'
)
cursor = db.cursor()
#放插表数据的文件,放到列表a中;文件中字段都是换行隔开
file = open(r"文件路径","r",encoding='utf-8')
a = file.read().splitlines()
for i in range(1):
for j in a:
#随机生成数字
k = random.randint(0000000000,9999999999)
#rjust右对齐,不够10位左边用0填充
k_format = str(k).rjust(10,'0')
#随机生成数字,插入到主键
g = random.randint(0,299999)
#其中g是插到主键,k_format是插入到两个表中的10位数字,str(j)是取得文件中的数据
sql_1 = """
INSERT INTO table_a VALUES ({0},\'{1}\', '测试',
'测试', '测试', NULL, 0, 50, 0, '2020-7-3',
'2021-7-3', '2020-7-3 10:50:43', '2020-7-3 10:50:43', NULL, NULL, NULL, NULL);
""".format(g,k_format)
sql_2 = "INSERT INTO table_b VALUES ({0},\'{1}\',\'{2}\', 30, 0, 0, '2020-7-10 16:20:25', '2020-7-16 15:24:47');".format(g,str(j),k_format)
print(sql_1)
print(sql_2)
#加一个异常处理,即使某一条sql插入失败了,也会继续往下执行循环条件
try:
#执行两个sql
cursor.execute(sql_1)
db.commit()
cursor.execute(sql_2)
db.commit()
except:
pass
#关闭cursor、db、file
cursor.close()
db.close()
file.close()
python实现批量插入数据到mysql表中,需求是表1与表2插入某字段的值要一致(且是10位的数字),且表2的另一个字段要插入特定的值(在文件中)
最新推荐文章于 2022-10-14 14:08:29 发布