pg-promise による複数行挿入
単一のクエリでデータベース テーブルに複数の行を挿入すると、特に次の場合にパフォーマンスが大幅に向上します。大規模なデータセットを扱う。強力な SQL クエリ ビルダーおよび実行ライブラリである Pg-promise は、複数行の挿入を実行する便利で効率的な方法を提供します。
ヘルパーを使用した複数行の挿入
pg-promise で複数の行を挿入するには、ヘルパー名前空間を使用できます。この名前空間は、パラメータ化可能な SQL クエリを簡単に構築できる一連のユーティリティ関数を提供します。
<code class="javascript">const pgp = require('pg-promise')({ capSQL: true // capitalize all generated SQL }); const db = pgp(/*connection*/); const {ColumnSet, insert} = pgp.helpers; // our set of columns, to be created only once (statically), and then reused, // to let it cache up its formatting templates for high performance: const cs = new ColumnSet(['col_a', 'col_b'], {table: 'tmp'}); // data input values: const values = [{col_a: 'a1', col_b: 'b1'}, {col_a: 'a2', col_b: 'b2'}]; // generating a multi-row insert query: const query = insert(values, cs); //=> INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2') // executing the query: await db.none(query);</code>
ColumnSet クラスは挿入する列を定義し、挿入関数は挿入するデータ値を取得して生成します。 SQL クエリ。このアプローチはパフォーマンスが高く、単一行と複数行の両方の挿入が可能です。
SQL インジェクション保護
SQL インジェクション保護に関する補足的な質問については、次のとおりです。プレースホルダー ($1、$2 など) の使用だけでは保護が保証されないことを理解することが重要です。悪意のある SQL コマンドの実行を防ぐには、プレースホルダーと適切な入力検証およびサニタイズを組み合わせることが不可欠です。 Pg-promise はデフォルトでこのアプローチを採用し、データベースにデータを安全に挿入する方法を提供します。
追加の考慮事項と補足
結論として、pg-promise のヘルパー名前空間を使用すると、複数行の挿入を簡単に実行でき、パフォーマンスを最適化しながら SQL インジェクションを保護できます。
以上がpg-promise を使用して PostgreSQL データベースで複数行の挿入を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。