검색하다보니 없는거같아서 남깁니다.
대부분 아시겠지만 데이터가 있으면 update하고 없으면 insert 하는구문..
간혹 필요한데 자주안쓰다보니 까먹더라구요.
데이터가 있으면 update하고 없으면 insert 하는구문..
예를들어 상품 테이블이 아래와 같고
| goods_no | primary key auto_increment | |
| goods_code | varchar(20) | |
| goods_name | varchar(50) |
이미 아래 데이터가 존재할경우
| goods_no | goods_code | goods_name |
| 1 | A00001 | 모하비고스트 |
INSERT INTO 상품테이블 (goods_code, goods_name)
VALUES('A00001', '모하비고스트향수')
ON DUPLICATE KEY UPDATE goods_name='모하비고스트향수';
쿼리를 실행하면
goods_name부분이 '모하비고스트향수'로 바뀔거 같지만
계속 INSERT만 됩니다.
중요한건 UNIQUE INDEX
| goods_no | primary key auto_increment | |
| goods_code | varchar(20) | UNIQUE INDEX |
| goods_name | varchar(50) |
요렇게 하면 의도하는 대로 상품명만 '모하비고스트향수'로 바뀌게됩니다.
중복키관리는 이거외에 REPLACE INTO와 INSERT IGNORE가 더 있는데..
REPLACE INTO 는 기존데이터 삭제후 INSERT 하는 방식이라 고유 id값을 다른부분에서 사용한다면
골때리는 상황이 발생할수가 있습니다.(직접겪었.. ㅠㅠ)
INSERT IGNORE 는 중복 에러발생시 입력을 무시하는 방식.
그래서 on duplicate update 방식이 젤 좋은방식이 아닌가 생각됩니다.
예전에 어떤 사이트에서 on duplicate update 를 퍼포먼스 등의 문제로 사용하지 말라는 글을
얼핏 보긴했는데 해당부분을 다시 찾아봤는데 못찾겠네요.
혹시 찾으시면 공유 부탁드립니다^^;
댓글 6개
게시글 목록
| 번호 | 제목 |
|---|---|
| 17819 |
JavaScript
당신이 알아야 할 자바스크립트의 강력한 7가지 팁
3
|
| 17818 |
JavaScript
자바스크립트 코드를 더 깔끔하고 보기 좋게 작성하는 팁
1
|
| 17817 |
PHP
chatgtp
|
| 17816 |
JavaScript
textarea 자동 높이 설정하기.
1
|
| 17814 | |
| 17811 |
JavaScript
자바스크립트 플래이그라운드 - RUNJS
|
| 17810 | |
| 17809 | |
| 17808 |
JavaScript
16진수 색상코드 확인함수
|
| 17803 | |
| 17799 | |
| 17798 | |
| 17797 |
JavaScript
동영상파일 썸네일 만들기
8
|
| 17795 |
JavaScript
div태그의 사이즈가 변경되는 이벤트를 처리하기
|
| 17794 |
JavaScript
초->hh:mm:ss로 변환하는 함수
1
|
| 17793 |
JavaScript
JSON Beautify
|
| 17790 |
PHP
JSONP실례
|
| 17789 | |
| 17786 |
JavaScript
ThreeJS로 3디지구에 포인트 찍고 정보 현시기능
|
| 17774 | |
| 17760 | |
| 17755 | |
| 17750 | |
| 17729 | |
| 17722 | |
| 17714 | |
| 17708 | |
| 17686 | |
| 17676 |
JavaScript
유튜브 풀화면 묵음배경 예제
9
|
| 17666 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기