[SQL] PostgreSQL의 멀티 INSERT는 ... 여러 열로의 반품
SQLPostgreSQL의 멀티 INSERT는 ... 여러 열로의 반품
난`3 개 테이블을 가진, 백엔드로 포스트 그레스 9.3로 데이터베이스를 구축 :
table1 (user_id, username, name, surname, emp_date)
table2 (pass_id, user_id, password)
table3 (user_dt_id, user_id, adress, city, phone)
으로 볼 수있는 표 2와 표 3은 표 1의 자식 테이블입니다. 나는 표에서 새로 삽입 된 행 (부모)의 USER_ID를 추출 할 수 있습니다 :
INSERT INTO "table1" (default,'johnee','john','smith',default) RETURNING userid;
나는 그 테이블에 대한 고유 한 다른 데이터와 함께 표 2와 표 3의 USER_ID 컬럼으로 (표에서) 새로 추출 된 ID를 삽입해야합니다. 기본적으로 3 X INSERT ... 어떻게 그렇게 할 수 있습니까?
해결법
-
==============================
1.사용 체인에 세 개의 INSERT들을 열팽창 계수를 데이터-수정. 이 같은:
사용 체인에 세 개의 INSERT들을 열팽창 계수를 데이터-수정. 이 같은:
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, adress, city, phone) SELECT ins1.user_id, ... FROM ins1 RETURNING user_id;
CTE는 (일명, "쓰기") 데이터 수정에 대한 자세한 내용 :
from https://stackoverflow.com/questions/22775109/postgresql-multi-insert-returning-with-multiple-columns by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 MS Access 쿼리에서 직접 시스템 사용자 이름을 사용 하는가? (0) | 2020.04.22 |
---|---|
[SQL] 결과를 사용할 수까지 여러 건의 SELECT를 시도하는 방법? (0) | 2020.04.22 |
[SQL] SQL의 GROUP BY 절에 열을 쉼표로 구분 (0) | 2020.04.22 |
[SQL] 자기 무엇을 위해 가입한다? (영어로) (0) | 2020.04.22 |
[SQL] 삽입 속으로 ... 병합 ... 선택 (SQL 서버) (0) | 2020.04.22 |