>  기사  >  웹 프론트엔드  >  pg-promise는 PostgreSQL에서 다중 행 삽입을 어떻게 효율적으로 처리할 수 있습니까?

pg-promise는 PostgreSQL에서 다중 행 삽입을 어떻게 효율적으로 처리할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-31 01:14:18676검색

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')

쿼리 실행

없음 메서드를 사용하여 생성된 쿼리를 실행할 수 있습니다.

await db.none(query);

동적 SQL 이름 및 SQL 주입 방지

Pg-promise는 문자열 보간 대신 쿼리 매개변수에 자리 표시자($1, $2 등)를 사용합니다. 이 접근 방식은 라이브러리가 쿼리를 구성하기 전에 매개변수를 삭제하므로 SQL 주입 취약점을 방지합니다.

추가 참고 사항

  • 새 레코드 ID 반환: 새로 삽입된 레코드의 ID를 검색하려면 RETURNING id를 쿼리에 추가하고 Many 메서드를 사용하여 실행합니다.
  • 오류 처리: 잠재적인 오류를 처리하려면 쿼리 생성을 다음으로 래핑합니다. 생성이 실패하면 예외를 발생시킬 수 있는 함수입니다.

요약하자면, pg-promise는 다중 행 삽입을 수행하기 위한 강력한 솔루션을 제공하여 데이터 무결성과 성능 효율성을 보장합니다. 최적의 결과를 얻으려면 삽입 도우미와 동적 SQL 이름을 활용하세요.

위 내용은 pg-promise는 PostgreSQL에서 다중 행 삽입을 어떻게 효율적으로 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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