pg-promise で効率的な複数行挿入を実現するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-01 09:49:02
オリジナル
786 人が閲覧しました

How to Achieve Efficient Multi-Row Inserts with pg-promise?

pg-promise による複数行挿入

単一の INSERT クエリでデータベースに複数の行を挿入すると、パフォーマンスが大幅に向上します。 pg-promise では、複数行の挿入に利用できるメソッドがいくつかあります。

ヘルパー名前空間からの ColumnSet と挿入ヘルパーの使用は、パフォーマンスを最適化するための推奨されるアプローチです。まず、データを挿入する列を定義する ColumnSet オブジェクトを作成します。次に、挿入ヘルパーを使用して、指定された値を含む INSERT クエリを生成します。クエリは適切な数の値プレースホルダーを使用して生成され、VALUES 句には指定されたデータが含まれます。以下に例を示します:

<code class="javascript">const cs = new ColumnSet(['col_a', 'col_b'], {table: 'tmp'});
const values = [{col_a: 'a1', col_b: 'b1'}, {col_a: 'a2', col_b: 'b2'}];
const query = insert(values, cs);</code>
ログイン後にコピー

これにより、次の INSERT クエリが生成されます:

<code class="sql">INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2')</code>
ログイン後にコピー

db.none(query).

SQL インジェクション保護

挿入ヘルパーを使用すると、指定した値が自動的にパラメーター化され、SQL インジェクションに対する保護が提供されます。ただし、スキーマ/テーブル/列名を動的に挿入する場合は、潜在的な SQL インジェクション攻撃を防ぐために SQL 名を使用することが重要です。

戻り値を使用した挿入

複数行の挿入から生成された ID またはその他の値を取得したい場合は、クエリに RETURNING を追加し、db.many を使用して実行できます。これにより、要求されたデータを含むオブジェクトの配列が返されます。

結論

SQL 名とともに ColumnSet および挿入ヘルパーを使用すると、複数のデータを安全かつ効率的に実行できます。 -pg-promise を使用して行を挿入します。

以上がpg-promise で効率的な複数行挿入を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!