>  기사  >  웹 프론트엔드  >  pg-promise를 사용하여 효율적인 다중 행 삽입을 달성하는 방법은 무엇입니까?

pg-promise를 사용하여 효율적인 다중 행 삽입을 달성하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-01 09:49:02787검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.