この記事ではPythonのexecutemanyの使い方と注意点を中心に紹介していますので、必要な方は参考にしてください
データを一括挿入する場合は以下の点に注意してください。 :
#coding:utf8 conn = MySQLdb.connect(host = “localhost”, user = “root”, passwd = “123456”, db = “myDB”) cursor = conn.cursor() sql = “insert into myTable (created_day,name,count) values(%s,%s,%s) ON DUPLICATE KEY UPDATE count=count+values(count)” args=[("2012-08-27","name1",100),("2012-08-27","name1",200),("2012-08-27","name2",300)] try: cursor.executemany(sql, args) except Exception as e: print0(“执行MySQL: %s 时出错:%s” % (sql, e)) finally: cursor.close() conn.commit() conn.close()
here args 複数のタプルを含む array です。各タプルは、mysql のデータの一部に対応します。ここでの created_day に対応する %s には引用符が含まれていないことに注意してください。ここで %s が引用符で囲まれている場合、executemany は最初に SQL ステートメント %s に対して通常のマッチングを実行し、次に string を埋め込むと推測されます。mysql に間違って挿入すると、「0000-00-00」タイプが表示されます。日付。
一度に多くのデータを挿入したい場合は、executemany を使用することを強くお勧めします。私の経験から言えば、データを 1 つずつ挿入するには 2 ~ 3 時間かかりますが、executemany を使用すると 2 ~ 3 秒しかかかりません。 ! !
executemany を ON DUPLICATE KEY UPDATE と一緒に使用する場合、通常の SQL モードに従う場合、つまり: sql="insert into myTable (created_day,name,count) names(%s,%s,%s) ON DUPLICATE KEY UPDATE count=count+%s" はバグを報告します: 文字列のフォーマット中に一部の引数が変換されない
[関連推奨事項]
1. 特別な推奨事項: 「php Programmer Toolbox」V0.1 バージョンのダウンロード
以上がexecutemanyの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。