집 >데이터 베이스 >MySQL 튜토리얼 >CSV 파일에서 특정 Postgres 행을 업데이트하는 방법은 무엇입니까?
CSV 데이터를 사용하여 특정 Postgres 행 업데이트
이 가이드에서는 CSV 파일의 데이터를 사용하여 PostgreSQL 테이블에서 선택한 행을 효율적으로 업데이트하는 방법을 보여줍니다. 이 작업에서는 COPY
및 UPDATE
명령을 활용하겠습니다.
시나리오:
'id', 'banana' 및 'apple' 열이 있는 PostgreSQL 테이블 'tbl'을 상상해 보십시오. 목표는 CSV 파일의 정보를 기반으로 특정 행의 '바나나' 열만 업데이트하는 것입니다.
절차:
해결책에는 다음 단계가 포함됩니다.
임시 테이블 만들기:
'tbl' 테이블의 구조를 반영하는 임시 테이블 tmp_x
을 생성합니다.
<code class="language-sql">CREATE TEMP TABLE tmp_x (id int, apple text, banana text);</code>
CSV 데이터 가져오기:
tmp_x
명령을 사용하여 CSV 파일의 내용을 COPY
으로 가져옵니다. /absolute/path/to/file
을 실제 파일 경로(
<code class="language-sql">COPY tmp_x FROM '/absolute/path/to/file' (FORMAT csv);</code>
메인 테이블 업데이트:
UPDATE
문을 실행하여 'tbl'의 'banana' 열을 수정합니다. 이는 tmp_x
의 데이터를 사용하여 'id' 열을 기준으로 행을 일치시킵니다.
<code class="language-sql">UPDATE tbl SET banana = tmp_x.banana FROM tmp_x WHERE tbl.id = tmp_x.id;</code>
임시 테이블 제거:
업데이트 후 임시 테이블을 제거하세요.
<code class="language-sql">DROP TABLE tmp_x;</code>
대체 접근 방식:
단순화된 임시 테이블 생성: CSV 파일이 'tbl'의 구조와 일치하는 경우 tmp_x
더 간결하게 생성할 수 있습니다.
<code class="language-sql"> CREATE TEMP TABLE tmp_x AS SELECT * FROM tbl LIMIT 0;</code>
수퍼유저 권한 방지: 수퍼유저 권한이 없는 COPY
작업의 경우 psql 메타 명령을 사용합니다.
<code class="language-sql"> \copy tmp_x FROM '/absolute/path/to/file' (FORMAT csv);</code>
유용한 링크:
위 내용은 CSV 파일에서 특정 Postgres 행을 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!