DB/mysql

insert into on duplicate 있을 경우 update 없을 경우 insert

soccerda 2023. 4. 27. 16:43
반응형

데이터 유무에 따라서 알아서 insert / update를 처리할 수 있다.

만약 없다면 select 하여 결과 값에 따라서 insert를 해주거나 update를 해줘야 하는데 소스코드가 길어진다.

 

mysql에서는 이런 경우 

 

insert into on duplicate를 통해서 처리할 수 있다.

 

우선 전제 조건은 인덱스로 unique 키가 설정되어 있어야 한다.

 

그리고 구문은

 

INSER INTO 테이블

( 컬럼1, 컬럼2, 컬럼3 ..) VALUES ( 값1, 값2, 값3 )

ON DUPLICATE KEY UPDATE

  업데이트 컬럼1 = 업데이트 될 컬럼1 값

 ...

  ,업데이트 컬럼n = 업데이트 될 컬럼n 값

 

으로 처리하면 된다.

 

반응형