PostgreSQL: 다중 행 업데이트 간소화
PostgreSQL은 여러 행을 동시에 업데이트할 수 있는 효율적인 방법을 제공하는데, 이는 상당한 데이터 세트나 복잡한 업데이트 조건을 처리할 때 상당한 이점을 제공합니다. 기존 SQL의 행당 개별 UPDATE
문과 달리 PostgreSQL은 두 가지 우수한 대안을 제공합니다.
접근법 1: CASE를 사용한 조건부 업데이트
CASE
표현식을 사용하면 특정 기준에 따라 행에 다른 값을 할당할 수 있습니다. UPDATE
문 구조는 다음과 같습니다.
<code class="language-sql">UPDATE table_name SET column_name = CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... ELSE default_value END WHERE condition;</code>
예를 들어, column_a
을 1(column_b
이 '123'인 경우)로 설정하고 2(column_b
이 '345'인 경우)로 설정하려면:
<code class="language-sql">UPDATE table_name SET column_a = CASE WHEN column_b = '123' THEN 1 WHEN column_b = '345' THEN 2 ELSE column_a -- Retain original value if condition not met END WHERE column_b IN ('123', '345');</code>
접근 2: 간결한 업데이트를 위한 업데이트...FROM
UPDATE...FROM
구성은 별도의 테이블이나 하위 쿼리를 사용하여 업데이트 값을 정의하므로 코드가 더 깔끔하고 읽기 쉬워집니다. 구문은 다음과 같습니다.
<code class="language-sql">UPDATE table_name SET column_names = (SELECT column_names FROM subquery) WHERE condition;</code>
이전 예에 적용:
<code class="language-sql">UPDATE table_name AS t SET column_a = c.column_a FROM ( VALUES ('123', 1), ('345', 2) ) AS c(column_b, column_a) WHERE c.column_b = t.column_b;</code>
이러한 PostgreSQL 기술은 특히 대규모 데이터 조작의 경우 개별 UPDATE
문에 비해 효율성과 코드 명확성을 크게 향상시킵니다.
위 내용은 단일 PostgreSQL 쿼리에서 여러 행을 효율적으로 업데이트하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!