2016-07-23 4 views
0

私はノードポストグレッグを使ってPostgresにいくつかの大きなバルク挿入をしようとしています バインディング配列が65536を超えると残りの値がpostgresに渡され、エラーPostgreSQL node.jsプリペアドステートメント最大バインディング

[error: bind message supplies 4 parameters, but prepared statement "" requires 65540] 

どのような考えですか? ありがとうございます。

答えて

1

準備済みステートメントnode-postgresは、マルチクエリステートメントをサポートしていないため、バルク挿入には適していません。そして、同時にすべてのインサートに変数の配列を引き伸ばしてはいけません。これは、うまくスケールされず、そこにヒットしたような独自の制限があります。

代わりに、あなたはの形式で、多値のインサートを使用する必要があります。

INSERT INTO table(col1, col2, col3) VALUES 
(val-1-1, val-1-2, val-1-3), 
(val-2-1, val-2-2, val-2-3), 
...etc 

は最大1,000で、このようなクエリで一括挿入を分割 - 各レコードのサイズによっては、10,000レコード単純なクエリとして実行することができます。

も参照してくださいPerformance Boost記事、理解するINSERTスケーラビリティが良い。

関連する問題