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

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

Barbara Streisand
Barbara Streisand원래의
2024-10-30 13:53:26925검색

How to Achieve Multi-Row Inserts with Efficiency Using pg-promise?

pg-promise

문제 설명:

방법 pg-promise에서 단일 INSERT 쿼리를 사용하여 데이터베이스에 여러 행을 효율적으로 삽입하려면?

해결책:

pg-promise에서 선호하는 접근 방식은 도우미를 사용하는 것입니다. 고성능 및 유연성을 위한 네임스페이스.

<code class="javascript">const {ColumnSet, insert} = pgp.helpers;

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);
// => INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2')

await db.none(query);</code>

추가 고려 사항:

  • 최적의 성능을 위해 서식 지정 템플릿을 캐시하려면 ColumnSet 개체를 정적으로 생성해야 합니다.
  • 이 다중 행 삽입은 트랜잭션이 없습니다. 즉, 값이 모두 삽입되거나 전혀 삽입되지 않습니다.
  • SQL 주입 방지는 SQL 이름과 함께 헬퍼 네임스페이스를 사용하여 제공됩니다.

추가:

  • 각 새 레코드의 ID를 얻으려면 쿼리에 RETURNING ID를 추가하고 db.many()를 사용하여 실행합니다.
  • 대규모 데이터세트를 삽입하려면 데이터 가져오기 기능 활용을 고려해 보세요.
  • 향상된 오류 처리를 위해 쿼리 생성을 함수 내에 캡슐화할 수 있습니다.

위 내용은 pg-promise를 사용하여 효율적으로 다중 행 삽입을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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