pg-promise は PostgreSQL で複数行の挿入を効率的に処理するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-31 01:14:18
オリジナル
613 人が閲覧しました

How can pg-promise efficiently handle multi-row inserts in PostgreSQL?

pg-promise による複数行の挿入

単一のクエリ内で複数の行を挿入することは、一括操作の効率的なアプローチです。 Pg-promise は、配列ベースのメカニズムを通じて複数行の挿入をシームレスにサポートします。

複数行の挿入構文

複数の行を挿入するには、それらを定義できます。オブジェクトの配列として、各オブジェクトは行を表します:

const values = [{col_a: 'a1', col_b: 'b1'}, {col_a: 'a2', col_b: 'b2'}];
ログイン後にコピー

複数行の挿入クエリを生成するには、pgp.helpers 名前空間の挿入ヘルパーを利用します:

const cs = new ColumnSet(['col_a', 'col_b'], {table: 'tmp'});
const query = insert(values, cs);
ログイン後にコピー

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

INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2')
ログイン後にコピー

クエリ実行

生成されたクエリは none メソッドを使用して実行できます:

await db.none(query);
ログイン後にコピー

動的 SQL 名と SQL インジェクション保護

Pg-promise は、文字列補間ではなく、クエリ パラメーターにプレースホルダー ($1、$2 など) を使用します。このアプローチでは、ライブラリがクエリを構築する前にパラメータをサニタイズするため、SQL インジェクションの脆弱性が防止されます。

追加メモ

  • 新しいレコード ID を返す: 新しく挿入されたレコードの ID を取得するには、RETURNING ID をクエリに追加し、many メソッドを使用して実行します。
  • エラー処理: 潜在的なエラーを処理するには、クエリ生成を内部でラップします。生成が失敗した場合に例外をスローできる関数。

要約すると、pg-promise は、複数行の挿入を実行し、データの整合性とパフォーマンス効率を確保するための堅牢なソリューションを提供します。最適な結果を得るには、挿入ヘルパーと動的 SQL 名を利用します。

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

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