> 데이터 베이스 > MySQL 튜토리얼 > 하위 쿼리를 사용하여 Postgres 테이블 행을 업데이트하는 방법은 무엇입니까?

하위 쿼리를 사용하여 Postgres 테이블 행을 업데이트하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-03 18:06:42
원래의
623명이 탐색했습니다.

How to Update Postgres Table Rows Using Subqueries?

하위 쿼리를 사용하여 Postgres에서 테이블 행 업데이트

Postgres에서는 하위 쿼리를 사용하여 각 행에 대해 원하는 값을 검색함으로써 테이블 행에 대한 업데이트를 수행할 수 있습니다. 이를 달성하는 한 가지 방법은 다음 구문을 사용하는 것입니다.

UPDATE table_name
SET column_name = (SELECT value FROM subquery WHERE subquery_condition)
WHERE table_condition;
로그인 후 복사

포스트그레스 8.4 데이터베이스의 더미 테이블을 업데이트하여 고객, 공급업체 및 파트너 열을 채우는 것이 목표인 다음 예를 고려해 보세요. 하위 쿼리에서 파생된 값 사용:

CREATE TABLE public.dummy
(
  address_id SERIAL,
  addr1 character(40),
  addr2 character(40),
  city character(25),
  state character(2),
  zip character(5),
  customer boolean,
  supplier boolean,
  partner boolean
  
)
WITH (
  OIDS=FALSE
);

UPDATE dummy
SET customer = (SELECT
    CASE WHEN cust.addr1 IS NOT NULL THEN TRUE ELSE FALSE END),
    supplier = (SELECT
    CASE WHEN suppl.addr1 IS NOT NULL THEN TRUE ELSE FALSE END),
    partner = (SELECT
    CASE WHEN partn.addr1 IS NOT NULL THEN TRUE ELSE FALSE END)
FROM (
    SELECT *
        FROM address) pa
    LEFT OUTER JOIN cust_original cust
        ON (pa.addr1=cust.addr1 AND pa.addr2=cust.addr2 AND pa.city=cust.city 
            AND pa.state=cust.state AND SUBSTR(cust.zip,1,5) = pa.zip  )
    LEFT OUTER JOIN supp_original suppl 
        ON (pa.addr1=suppl.addr1 AND pa.addr2=suppl.addr2 AND pa.city=suppl.city 
                AND pa.state=suppl.state AND pa.zip = SUBSTR(suppl.zip,1,5))
    LEFT OUTER JOIN partner_original partn
        ON (pa.addr1=partn.addr1 AND pa.addr2=partn.addr2 AND pa.city=partn.city
                  AND pa.state=partn.state AND pa.zip = SUBSTR(partn.zip,1,5) )
WHERE pa.address_id = address_id;
로그인 후 복사

이 쿼리는 더미 테이블의 각 행에 대한 고객, 공급업체 및 파트너 열을 효과적으로 업데이트하여 설정합니다. 해당 주소가 cust_original, supp_original 및 Partner_original 테이블에 있으면 TRUE로, 그렇지 않으면 FALSE로 설정됩니다.

이 구문은 표준 SQL은 아니지만 하위 쿼리에서 파생된 값을 기반으로 테이블 행을 업데이트하는 데 편리함을 제공합니다. Postgres에서.

위 내용은 하위 쿼리를 사용하여 Postgres 테이블 행을 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿