반응형
한 번에 여러 값을 postgres 테이블에 삽입하는 방법은 무엇입니까?
한 번에 여러 값을 업데이트하려는 테이블이 있습니다. 다음은 테이블 스키마입니다.
Column | Type | Modifiers
---------------+---------+-----------
user_id | integer |
subservice_id | integer |
나는이 user_id
여러 삽입 할 subservice_id
한 번에의합니다. Postgres
이런 일을 할 수 있는 구문이 있습니까?
insert into user_subservices(user_id, subservice_id) values(1, [1, 2, 3]);
어떻게해야합니까?
시험:
INSERT INTO user_subservices(user_id, subservice_id)
SELECT 1 id, x
FROM unnest(ARRAY[1,2,3,4,5,6,7,8,22,33]) x
데모 : http://www.sqlfiddle.com/#!15/9a006/1
다중 값 삽입 구문은 다음과 같습니다.
insert into table values (1,1), (1,2), (1,3), (2,1);
그러나 krokodilko의 대답은 훨씬 매끄 럽습니다.
krokodilko의 대답의 짧은 버전 :
insert into user_subservices(user_id, subservice_id)
values(1, unnest(array[1, 2, 3]));
이 솔루션을 기억하려고 할 때마다이 질문을 계속 찾기 때문에 약간 관련된 답변입니다. 여러 열이있는 여러 행 삽입 :
insert into user_subservices (user_id, subservice_id)
select *
from unnest(array[1, 2], array[3, 4]);
보다 강력한 예는 다른 테이블의 모든 행에 대해 일부 테이블에 여러 행을 삽입해야하는 경우입니다.
INSERT INTO user_subservices (user_id, subservice_id)
SELECT users.id AS user_id, subservice_id
FROM users
CROSS JOIN unnest(ARRAY[1,2,3]) subservice_id;
반응형
'development' 카테고리의 다른 글
슬라이스 된 "스크린"터미널에서 위아래로 스크롤하는 방법 (0) | 2020.10.25 |
---|---|
Golang에서 Mkdir을 사용하여 중첩 된 디렉토리를 만드는 방법은 무엇입니까? (0) | 2020.10.25 |
Google Maps API V3에서 fitBounds ()를 사용한 후 setZoom () 사용 (0) | 2020.10.25 |
Python에서 구분 된 줄에 목록 요소 인쇄 (0) | 2020.10.25 |
NSIndexpath.item 대 NSIndexpath.row (0) | 2020.10.25 |