問題タブ [executemany]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
4149 参照

python - Connector/Python が多くの最適化挿入を実行しないのはなぜですか?

Connector/Python を使用して、mysql の一時テーブルに多くの行を挿入しています。行はすべてリストのリストにあります。私はこのように挿入を行います:

(もちろん、さらに多くの行を使用すると) パフォーマンスが極端に低下することに気付きました。SHOW PROCESSLIST を使用すると、各挿入が個別に実行されていることに気付きました。しかし、ドキュメントhttps://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-executemany.htmlには、これを 1 つの挿入に最適化する必要があると記載されています。どうしたの?

0 投票する
2 に答える
2172 参照

python - Python + sqlite3: 「構築された」値を持つ executemany

executemanyPython で使用して、いくつかの行にデータを入力しようとしています。

しかし、私は得ています:

executemany一般に、生の値を可能な限り効率的にDBに詰め込むために使用していることを理解しています。それを念頭に置いて、通常、挿入される値の数を列の数と一致させたいと考えています。

しかし、1 つ以上の列が SQL によって「構築」され、対応する入力値がない場合はどうなるでしょうか。

小さな例:

それを実行すると、上部に記載されているエラーが表示されます ( 3 values for 4 columns)。

SELECT a,b分割することで解決できると思いますSELECT a..., SELECT b...が、何か良い方法はありませんか?

ここに示した例は小さいものです。実際には、10 列になるかもしれませんが、それぞれの(SELECT ...)節を詳細にリストする必要があります。


UPDATE 1executemany私が最初に考えていたように、これはに固有のものではありません。単純な SQL を手動で実行しても同じ問題があります。

UPDATE 2以下の回答では、SELECTではなくa を使用することをお勧めしますVALUESが、新しい行が追加されている場合 (私の「アップサート」の場合のように)、これは機能しませSELECTん。その場合、 は行を返さないためです。

0 投票する
1 に答える
93 参照

database - Python3 と SQlite3 で 3 つのリストを 6 つの列に書き込む方法

sqlite3 を使用して、値のペアを含む 3 つのリストを 6 つの列に書き込む必要があります。

そのようです:

各ペアを .db に並べて挿入する必要があります。ペアワイズ関数を利用してこれを行い、単一のリストに対して多くを実行できます。

ペアワイズ関数:

1 つのリストに対して機能する多くのコードを実行します。

同時に他のリストを渡そうとするたびに:

次のようなエラーが表示されます。

0 投票する
0 に答える
298 参照

python-2.7 - executemany コマンドを使用すると別のエラーが発生する

executemanyを使用するとエラーが発生する次のコードを記述します。しかし、ループを使用してクエリを実行すると、正常に動作します。この問題を解決するにはどうすればよいですか。

data[0] の値は次のとおりです。

これはクエリです:

次に、次のエラーが発生しました。

また、次のコードを実行したいときに、executemanyコマンドを使用して行からエラーが発生しました。

これはエラーです:

executemanyの代わりに loop を使用すると機能します。