PostgreSQL의 CTE로 여러 행 삽입
table1, table2, table3의 세 테이블이 있는 관계형 데이터베이스가 있다고 가정합니다. table1 테이블에는 일반 사용자 정보가 저장되고, table2 및 table3 테이블에는 비밀번호, 주소와 같은 추가 데이터가 포함됩니다. table1에 새 사용자를 추가하면서 사용자 ID와 기타 고유 데이터를 하위 테이블 table2 및 table3에 동시에 삽입하려고 합니다.
Postgres 9.3의 데이터 수정 CTE는 이 시나리오에 대한 솔루션입니다. CTE를 사용하면 여러 INSERT 작업을 효율적으로 연결할 수 있습니다.
데이터 수정 CTE를 사용하여 작업을 수행하는 방법은 다음과 같습니다.
WITH ins1 AS ( INSERT INTO table1 (username, name, surname) VALUES ('johnee', 'john', 'smith') RETURNING user_id ), ins2 AS ( INSERT INTO table2 (user_id, password) SELECT ins1.user_id, 'secret' FROM ins1 -- Nothing to return here ) INSERT INTO table3 (user_id, address, city, phone) SELECT ins1.user_id, ..., ... FROM ins1 RETURNING user_id;
CTE 분석:
모범 사례:
위 내용은 PostgreSQL CTE는 어떻게 여러 테이블에 여러 행을 효율적으로 삽입할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!