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