본문 바로가기
▶ Back-End/DataBase

MySql ON DUPLICATE KEY UPDATE 구문

by 오늘도 코딩 2023. 8. 2.
728x90
반응형

MySql에서 데이터가 없으면 INSERT, 이미 데이터가 있으면 UPDATE

*하나의 쿼리로 두 가지 경우를 해결할 수 있다.

 

 

▷ 사용법

 

INSERT INTO [TABLE] 
( 
	[COLUMN1],
	[COLUMN2],
	[COLUMN3],
	[COLUMN4] 
) 
VALUES 
( 
	[VALUES1],
	[VALUES2],
	[VALUES3], 
	[VALUES4]
)
ON DUPLICATE KEY UPDATE
[COLUMN2] = [VALUES2],
[COLUMN3] = [VALUES3],
[COLUMN4] = [VALUES4];

 

 

▷ Example

 

/** 테스트 테이블 생성 */
CREATE TABLE test
(
	TEST_ID    varchar(225) NOT NULL,
	TEST_NAME  varchar(225) NOT NULL,
	TEST_CODE  varchar(225),
	TEST_USE   varchar(225),
	PRIMARY KEY(TEST_ID)
);

/** ON DUPLICATE KEY UPDATE TEST */
INSERT INTO test 
( TEST_ID ,TEST_NAME ,TEST_CODE ,TEST_USE ) 
VALUES 
( 'T2308020001', '테스트2308020001', '테스트-Insert', '1')
ON DUPLICATE KEY UPDATE
TEST_NAME = '테스트2308020002' , TEST_CODE = '테스트-Update', TEST_USE = '2';

 

 

▷ 결과 확인

 

① 처음 실행 한 결과

TEST_ID가 중복이 아니기 때문에 새로운 데이터 INSERT

 

② 다시 실행한 결과

TEST_ID가 중복이기 때문에 데이터 UPDATE

 

 

▷ 관련 글

 

Mybatis Oracle MERGE INTO 구문

Oracle에서 데이터가 없으면 INSERT, 이미 데이터가 있으면 UPDATE *하나의 쿼리로 두 가지 경우를 해결할 수 있다. ▷ 사용법 --쿼리 대상 [TABLE/VIEW] MERGE INTO [TABLE/VIEW] --비교대상 [TABLE/VIEW], DUAL은 위와

coding-today.tistory.com

 

 

728x90
728x90

댓글