위토즈 - 개발자프로그램판매공간

정보공유

[SQL] 중복키관리 ON DUPLICATE KEY UPDATE

중복값 등록 방지를 위해서 아래와같은 방법을 사용한다.


보통 select 한다음 값이 있는경우 update 값이 없는경우 insert 하는 방법을 사용하는데


아래와 같이 한줄로 처리가 가능하다.


----------------------------------------------------


INSERT INTO table_name (column1, column2, column3, column4) values ('AA', '111', '333', '444') ON DUPLICATE KEY UPDATE column3 = '333', column4 = '444';


또는


INSERT INTO table_name (column1, column2, column3, column4) values ('AA', '111', '333', '444') ON DUPLICATE KEY UPDATE column3 = VALUES(column3), column4 = VALUES(column4);


----------------------------------------------------



위 구문을 사용하기 위해서는 중복이 되면 안되는 컬럼을 unique 키로 등록해야 합니다.


추가

ALTER TABLE table_name ADD UNIQUE uk_name (column1, column2);


삭제

ALTER TABLE table_name DROP INDEX uk_name





그외에 


INSERT IGNORE, REPLACE INTO 도 참고바람.





정보공유
Total 448건 4 페이지
번호 제목 글쓴이 날짜 조회
403 전세계 국문 영문 국가명 국제전화번호 및 코드 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10-22 10356
402 조건이 일치 하는 것은 앞으로 정렬하고 랜덤으로 출력하기. 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10-21 9985
401 휴대폰 번호 여부 체크 확인 함수 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10-21 10787
400 예약업 플러그인 이니시스 결제모듈 설치 안내 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 09-03 12409
399 예약업 플러그인 KCP 결제모듈 설치 안내 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 09-03 11662
398 jquery fullcalendar eventOrder 정렬 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-23 17182
397 [2021 최신 CSS 6] position:sticky 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-02 11066
396 [2021 최신 CSS 5] aspect-ratio 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-02 11256
395 [2021 최신 CSS 4] Flex Box Gap 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-02 10926
394 [2021 최신 CSS 3] 브라우저 지원여부 확인 @supports 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-02 10657
393 [2021 최신 CSS 2] 1줄로 정리 :is 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-02 10774
392 [2021 최신 CSS 1] 앱처럼 스크롤을 적용하자 scroll-snap 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-02 11521
391 문자 내용이 euc-kr 인지 체크 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-01 12298
390 데이터 검증 후 잘못된 처리일경우 롤백처리. (트랜젝션) 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 07-07 11583
389 영카트 배송비까지 비과세 적용하기 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 06-23 12798