落落2009

导航

 

1.目的

需要测试页面导出2万条数据限制,故需要往表里插入2万条数据

2.源代码

import pymysql
import time
dbinfo={
"host":"XXXXX",
"user":"XXXXXX",
"password":"XXXXXX",
"port":XXXXX
}

class DbConnect():
def __init__(self,db_cof,database=""):
self.db_cof=db_cof
self.db=pymysql.connect(database=database,cursorclass=pymysql.cursors.DictCursor,**db_cof)
self.cursor=self.db.cursor()
def select(self,sql):
self.cursor.excute(sql)
results=self.cursor.fetchall()
return results
def excute(self,sql):
try:
self.cursor.execute(sql)
self.db.commit()
except:
self.db.rollback()
def close(self):
self.db.close()


if __name__ == '__main__':
insert_sql = "INSERT INTO bjyz_slc.yw_jsycsj VALUES "
insert_values= "".join(["('%s','97','008-1217','008-1217','00000100','中国邮政集团公司','10002207','双井投递部','03346743','测试揽投员','测试报警班次','11:00','14:01','3','2022-06-12 08:00:00','1235','2022-06-12 12:16:10','112.9079100000','28.2231870000','湖南省长沙市岳麓区麓谷街道沿高路湖南湘邮科技股份有限公司','0','0','1'), \n" %str(i) for i in range(60010,60020)])
sql = insert_sql + insert_values[:-3]+";"
#print(sql)
time1 = time.time()
db = DbConnect(dbinfo, database="bjyz_slc")
db.excute(sql)
db.close()
time2 = time.time()
print("总过耗时:%s" % (time2-time1))

3.遇到问题

每个数据库不一样,故插入语句可能是
INSERT INTO bjyz_slc.yw_jsycsj  VALUES


也可能是
INSERT INTO 'bjyz_slc'.'yw_jsycsj'  VALUES

具体情况具体分析,可以将拼接好的sql在数据库执行一下就知道打印出来的sql是否正确了
疑问:数据库的自增id重复,但是python调用代码时却检测不出来这个错误,该怎么解决呢?




posted on 2022-08-04 17:02  落落2009  阅读(50)  评论(0)    收藏  举报