반응형
--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 |
댓글