< 목적 >
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
'Database > MySQL' 카테고리의 다른 글
| [Mysql] 랜덤 숫자 (0) | 2023.09.21 |
|---|---|
| [MySql] select한 결과를 값으로 CUD 하기 ( insert - select ) (0) | 2023.08.06 |
| [MySQL] Mysql Workbench로 ERD추출하기 ( mac ver ) (0) | 2023.07.05 |
| [MySQL] 리눅스로 DB생성하기 & 계정 추가 & 권한추가 (0) | 2023.05.31 |
| [ mysql ] 1년 사이에 등록된 데이터 리스트 뽑기 (0) | 2022.01.06 |