python下如何往数据库批量插入数据?办法是什么?
发布时间:2022-01-11 16:03:23 所属栏目:语言 来源:互联网
导读:python下如何往数据库批量插入数据?方法是什么?假如我们想要往数据库表中的插入的数据有几百上千条,那么一条条插入,则调用sql语句查询插入就需要执行几百上千,这样花费的时间就非常的长。因此我们可以使用cursor.executemany(sql,args)来实现批量插
python下如何往数据库批量插入数据?方法是什么?假如我们想要往数据库表中的插入的数据有几百上千条,那么一条条插入,则调用sql语句查询插入就需要执行几百上千,这样花费的时间就非常的长。因此我们可以使用cursor.executemany(sql,args)来实现批量插入数据,那么具体怎样做呢?接着往下看。 现使用cursor.executemany(sql,args) ,可对数据进行批量插入,其中args是一个包含多个元组的list列表,每个元组对应mysql当中的一条数据 以下是实例: 往数据库中的order表、order_detail表和pay表中插入1000条订单数据,订单详情数据以及支付数据 1.pay表中的id字段是order表中的pay_id字段 2.order表中的id字段是order_detail表中的order_id字段 1.初始化属性(包括host、port、user、password和database) def __init__(self): self.__db_host=XXX self.__db_port=XXX self.__db_user=XXX self.__db_password=XXX self.__db_database=XXX 2.连接数据库 def isConnection(self): self.__db=pymysql.connect( host=self.__db_host, port=self.__db_port, user=self.__db_user, password=self.__db_password, database=self.__db_database, charset='utf8' ) 3.批量往pay表中插入1000条数据 # 插入数据进pay表 def pay_insert(self,pay_value): try: # 连接数据库 self.isConnection() # 创建游标 global cursor cursor=self.__db.cursor() # 执行 cursor.executemany('insert into `pay表`(type,pay_money,pay_time,pay_no,STATUS,create_by,create_time,update_by, update_time) value (%s,%s,%s,%s,%s,%s,%s,%s,%s)',pay_value) except Exception as e: print e finally: cursor.close() self.__db.commit() self.__db.close() # 生成pay表所需字段,并调用sql def pay_data(self): pay_value=list() for i in range(1,1000): pay_value.append((0,8800,time.localtime(),str(random.randint(712300000000,712399999999)),3,49338, time.localtime(),49338,time.localtime())) now_time=time.localtime() self.pay_insert(pay_value) return now_time 4.pay表中生成的1000条数据,依次取出id # 获取pay_id def get_pay_id(self,now_time): try: self.isConnection() global cursor cursor=self.__db.cursor() cursor.execute('select id from `pay表` where create_time >= %s',now_time) id_value=list() for i in range(1,1000): pay_id=cursor.fetchone() id_value.append(pay_id) return id_value except Exception as e: print e finally: cursor.close() self.__db.commit() self.__db.close() 以下是完整代码: # #!/usr/bin/python # # -*- coding: UTF-8 -*- (编辑:92站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |