1

私は次のクエリを持っています

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に挿入されません。複数の行を挿入するにはどうすればよいですか?

4

2 に答える 2

0

次の 3 つのオプションが表示されます。

  1. すべてのクエリを個別に DB に送信します。

    [...]
    self.con.execute(query1)
    self.con.execute(query2)
    self.con.execute(query3)
    [...]
    
  2. 【ここには当てはまらないので削除しました】

  3. multi=Trueただし、これについてはあまり詳しくありません。self.con.nextset()を繰り返し呼び出す解決策がある可能性があります。ドキュメントによると、これは複数の結果セットのみを対象としていますが、複数のクエリ リクエストでも必要になる可能性があります。

于 2013-02-28T11:48:11.963 に答える
0

3 つの個別のクエリがあるため、それぞれを個別に実行する必要があります。つまり、次のようになります。

self.con.execute(query1)
self.con.execute(query2)
self.con.execute(query3)
于 2013-03-02T03:44:06.170 に答える