如何将多个值插入MYSQL?
我有以下的查询
INSERT INTO `min01_aggregated_data_800` (`datenum`,`Timestamp`,`QFlag_R6_WYaw`) VALUES ('734970.002777778','2012-04-11 00:04:00.000','989898') ON DUPLICATE KEY UPDATE `datenum`=VALUES(`datenum`);
INSERT INTO `min01_aggregated_data_100` (`datenum`,`Timestamp`,`QFlag_R6_WYaw`) VALUES ('734970.002777778','2012-04-11 00:04:00.000','989898') ON DUPLICATE KEY UPDATE `datenum`=VALUES(`datenum`);
INSERT INTO `min01_aggregated_data_300` (`datenum`,`Timestamp`,`QFlag_R6_WYaw`) VALUES ('734970.002777778','2012-04-11 00:04:00.000','989898') ON DUPLICATE KEY UPDATE `datenum`=VALUES(`datenum`);
我正在使用 mysql.connector
这个包来把数据插入到MySQL数据库中
self.db = mysql.connector.Connect( host = self.m_host, user = self.m_user, password = self.m_passwd, \
database = self.m_db, port = int( self.m_port ) )
self.con = self.db.cursor( cursor )
self.con.execute( query )
self.db.commit()
self.db.close()
self.con.close()
但是我遇到了一个错误,提示 Use multi=True when executing multiple statements
我尝试在这种情况下使用 multi=True
,这样虽然没有出现异常,但数据还是没有插入到MySQL里。我该如何插入多行数据呢?
2 个回答
0
你有三个不同的查询,所以每一个都应该单独运行,也就是说:
self.con.execute(query1)
self.con.execute(query2)
self.con.execute(query3)
0
我看到有三种选择:
把每个查询单独发送到数据库:
[...] self.con.execute(query1) self.con.execute(query2) self.con.execute(query3) [...]
[这个选项被删除了,因为不适用]
我对这个
multi=True
不是很熟悉,不过可能有一种解决方案是反复调用self.con.nextset()
。根据文档,这个方法是用来处理多个结果集的,但也许在处理多个查询请求时也需要用到。