본문 바로가기
DataBase

[SQL] UPSERT 문

by 바까 2021. 9. 15.
반응형
--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값을 가리킴
반응형

'DataBase' 카테고리의 다른 글

[SQL] 데이터 타입  (0) 2021.09.15
[SQL] 외부 데이터 넣기 IMPORT, 출력하기 EXPORT  (0) 2021.09.15
[SQL] DELETE 문  (0) 2021.09.15
[SQL] UPDATE, UPDATE JOIN 문  (0) 2021.09.15
[SQL] INSERT문  (0) 2021.09.15

댓글