mysql에서는 다양한 방법의 중복 데이터 관리 방식이 있다
각각의 방식들을 한번 알아보도록 하자
- insert ignore
- replace
- on dupicate key update
중복으로 인지하는 경우는 아래와 같다
데이터 삽입 시, PRIMERY KEY나 UNIQUE KEY가 중복되었을 경우
insert ignore
새로 추가로 온 insert 무시
replace
기존의 레코드를 삭제하고 다시 데이터 삽입
레코드가 삭제되고 다시 삽입되기 때문에 AUTO_INCREMENT로 ID값을 지정했을 경우 ID값이 변한다
on duplicate key update
지정한 데이터만 UPDATE
위에 예시에서는 기존에 값에 특정한 작업을 해서 새로운 값을 넣는 경우지만
insert into... values(...)에 입력한 값을 update 조건에 추가하고 싶은 경우는 아래와 같이 사용하면 된다
VALUES() 블럭 없이 칼럼명만 입력하게 되면 이전에 존재하던 값이 들어가게 된다