Database/RDMBS
[postgresql] merge into 사용
도토리즈
2023. 4. 5. 22:26
-- 테이블에 데이터가 있는 경우 update , 테이블에 데이터가 없는 경우 insert 되는 구문
WITH UPSERT AS
( UPDATE 테이블명 SET
컬럼명1 = 'value1',
컬럼명2 = 'value2',
컬럼명3 = 'value3'
WHERE 컬럼명 = 'value'
RETURNING * ) --값이 있는 경우 update 진행
INSERT INTO test
(컬럼명1,
컬럼명2,
컬럼명3)
SELECT
'value1',
'value2',
'value3'
WHERE NOT EXISTS ( SELECT * FROM UPSERT ) -- 값이 없는 경우 insert