관리 메뉴

Life goes slowly...

[Mysql] Mysql 동시에 Insert와 Update - Upsert() 함수 본문

프로그래밍/MySQL

[Mysql] Mysql 동시에 Insert와 Update - Upsert() 함수

빨강소 2020. 9. 9. 10:01
728x90
반응형

Mysql의 Upsert 함수

Mysql의 Insert 와 Update 를 함께 쓰는 기능으로 관련된 Data가 없으면 Insert하고 관련된 Data가 있으면 Update 하는 함수입니다. (Mysql 4.1 버전 이상부터 지원하고 있습니다.) 다른 DB에서도 Upsert 작업에 대한 기능을 제공하고 있습니다.

 

DataBase

기능을 제공하는 Query

Mysql

ON DUPLICATE KEY UPDATE

Oracle

MERGE INTO

Mssql

IN NOT EXISTS

 

Upsert 사용방법
INSERT INTO @TABLE
(arg1, arg2, arg3, arg4, arg5)
VALUES
(@arg1, @arg2, @arg3, @arg4, @arg5)
ON DUPLICATE KEY UPDATE           //Key를 제외한 Update할 컬럼들
arg1 = @arg1, arg3 = @arg3, arg5 = @arg5

 

Upsert와 비슷한 방법으로 REPLACE 방법도 있습니다.

INSERT INTO @TABLE
(arg1, arg2, arg3, arg4, arg5)
VALUES
(@arg1, @arg2, @arg3, @arg4, @arg5)
REPLACE INTO @TABLE (arg1, arg2, arg3, arg4, arg5) VALUES (@arg1, @arg2, @arg3, @arg4, @arg5)

REPLACE 방법은 해당 Row Data를 삭제하고 새롭게 Insert 하는 방법으로 ON DUPLICATE KEY UPDATE을 지향하는게 좋을듯합니다.

728x90
반응형
Comments