1

PythonモジュールMySQLDbを使用して、一度に複数のエントリ(場合によっては最大300)を挿入しています。私のSQLは次のようになります...

INSERT INTO MyTable (row2,row3) values 
(row2_entry1,row3_entry1),(row2_entry2,row3_entry2),........(row2_entry300,row3_entry300)

このテーブルの主キーは自動インクリメントされます。私が欲しいのは、テーブルに入力されたエントリの主キーのリストです。バッチでこれを行うにはどうすればよいですか

4

1 に答える 1

0

MySQLLAST_INSERT_ID()は単一の値のみを返します。一括挿入の場合、最初に挿入された行の主キー値を返します。

GUID トークンを使用して、バッチ挿入操作の一部である行を追跡できます。varchar(32)という名前の列をテーブルに追加batch_insert_idします。バッチ挿入の実行中は、既知の GUID 値を使用してください。挿入後、選択クエリを実行して、挿入された行の主キーを取得します。

import uuid

batch_insert_id = uuid.uuid4().hex
# Execute your batch insert query, with batch_insert_id 
# as value of batch_insert_id for all rows
cursor.execute("SELECT id FROM mytable WHERE batch_insert_id = '%s'", (batch_insert_id,))
primary_keys = [row[0] for row in cursor.fetchall()]
于 2012-04-13T16:41:00.880 に答える