본문 바로가기

Database/MySQL

[MySQL] on duplicate key update ( insert 할 때 키 값이 중복되면 update 하기

 

< 목적 >

insert 시 이미 등록된 키값의 데이터여 중복 에러가 나는 경우 새 값으로 업데이트 한다 

 

 

- 등록된 데이터가 없으면 insert 하고, 이미 등록된 데이터가 있으면 update를 한다.

🌈 on duplicate key update 활용

insert into {tableName} (column1, column2 ) values ( 1, 2 )
on duplicate key update column2 = column2+2

-- 결과 column2가 4로 등록된다.

 

 

🌈 select insert로  이미 등록된 값을 update하기

-- select insert 으로 중복 값 바꾸기
insert into {tableName1} ( column1, column2, column3 )
select
	value1, value2, value3
from {tableName2}
where
	{조건}
on duplicate key update column2 = values (column2), column3 = values (column3)




insert into tb_sale ( store_no, sale_item, buy_Count )
select
	store_no, 
    item, 
	count(buy_Count) 
from tb_store
where
	store_no = 1
	and reg_date > (now() - interval 7 day)
on duplicate key update user_count = values (buy_Count)

 

 

 

 


 

참고함

https://brush-describr.tistory.com/entry/MySQL-ON-DUPLICATE-KEY-UPDATE-%EC%A4%91%EB%B3%B5%EC%97%86%EC%9D%B4-%EB%A0%88%EC%BD%94%EB%93%9C-%EB%B0%94%EA%BF%94%EC%B9%98%EA%B8%B0%EB%8C%80%EB%9F%89-%EB%A0%88%EC%BD%94%EB%93%9C-MyBatis-foreach%EB%AC%B8?category=1012892