DataBase
[SQL] UPSERT 문
바까
2021. 9. 15. 09:12
반응형
--UPSERT문
insert 를 시도할때 조건(상황)에 따라 UPDATE를 할 수 있는 구문이다.
복잡한 업무 처리에 자주 사용된다.
insert into TABLE_NAME(COLUMN_1) values (VALUE_1) --INSERT시도
on conflict TAGET action ; --충돌 시 다른 액션
--DO NOTHING
insert into CUSTOMERS(NAME, EMAIL)
VALUES(
'MICROSOFT','hotline@microsoft.com'
)
on CONFLICT(NAME) --기존에 존재할 경우,NAME이 유니크 제약조건이 있기 떄문
do nothing; --아무것도안함
--update
insert into CUSTOMERS(NAME, EMAIL)
VALUES(
'MICROSOFT','hotline@microsoft.com'
)
on CONFLICT(NAME) --기존에 존재할 경우,NAME이 유니크 제약조건이 있기 떄문
do update --존재해도 업데이트 할것
set EMAIL = EXCLUDED.EMAIL || ';' || CUMSTOMERS.EMAIL;--EXCLUDED.EMAIL은 위에서 INSERT시도한 EMAIL값을 가리킴
반응형