1

辞書のリストを収集し、sqlalchemy を使用して mysql データベースに一括挿入しようとしています。

バージョン 0.5 のこれらのドキュメントによるとexecutemany、オブジェクトの関数呼び出しでこれを行いconnectionます。これは、存在することがわかった唯一の場所executemanyです。

ただし、0.7 のこれらのドキュメントでは、 executemany が参照されていても、コード スニペットでは使用されておらず、実際、connectionクラスには存在しなくなっていることがわかりました。

2つの機能が合わさったように見えますが、もしそうならconnection.executeメソッドとメソッドの違いはsession.execute何ですか?一括挿入をサポートしていないドキュメントにあるようですがsession.execute、単一のテーブルに数千の辞書を挿入するにはどうすればよいでしょうか?

4

1 に答える 1

2

0.5 リンクを読み違えていると思います。指している例では、まだ「execute()」を使用しています。SQLAlchemy は、明示的な executemany() メソッドを公開したことはありません。executemany() は具体的には基礎となる DBAPIの関数であり、指定されたパラメーター セットがパラメーターのリストとして検出された場合に SQLAlchemy が使用します。

session.execute()connection.execute()は、パラメータ リストが名前付き引数「params」を使用して与えられることを除いて、 と同じ機能をサポートします。ドキュメント文字列はこれについて明示的ではなく、おそらく調整する必要があります。

メソッドを使用して、トランザクション固有のConnectionオブジェクトを取得することもできます。Sessionsession.connection()

于 2012-06-18T21:10:35.197 に答える