[SQL] INSERT ... ON DUPLICATE KEY (아무것도하지 않고)
SQLINSERT ... ON DUPLICATE KEY (아무것도하지 않고)
나는 두 개의 열에 대한 고유 키가있는 테이블이 있습니다
CREATE TABLE `xpo`.`user_permanent_gift` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`fb_user_id` INT UNSIGNED NOT NULL ,
`gift_id` INT UNSIGNED NOT NULL ,
`purchase_timestamp` TIMESTAMP NULL DEFAULT now() ,
PRIMARY KEY (`id`) ,
UNIQUE INDEX `user_gift_UNIQUE` (`fb_user_id` ASC, `gift_id` ASC) );
그 테이블에 행을 삽입 할,하지만 키가 존재하는 경우, 아무것도하지 않는! 키가 존재하기 때문에 오류가 발생하지 않습니다.
나는 다음과 같은 구문이 있다는 것을 알고있다 :
INSERT ... ON DUPLICATE KEY UPDATE ...
하지만 같은 뭔가입니다 :
INSERT ... ON DUPLICATE KEY DO NOTHING
?
해결법
-
==============================
1.예, 사용 INSERT ... ON DUPLICATE KEY UPDATE 아이디 = 아이디 (이 ID가 자신에게하지 트리거 행의 갱신 할당한다하더라도).
예, 사용 INSERT ... ON DUPLICATE KEY UPDATE 아이디 = 아이디 (이 ID가 자신에게하지 트리거 행의 갱신 할당한다하더라도).
당신이 오류 (변환 오류, 외래 키 오류)와 자동 증가 필드 고갈을 걱정하지 않는 경우 (이 행 인해 중복 키에 삽입되지 않은 경우에도 증가 것), 다음 INSERT가 무시 사용합니다.
-
==============================
2.항목이있는 경우 다음 새 항목을 삽입, 삭제하는 것은 고유 키 또는 기본 키와 일치
항목이있는 경우 다음 새 항목을 삽입, 삭제하는 것은 고유 키 또는 기본 키와 일치
장점 : 간단합니다.
단점 : 1. 너무 느리다. 2. 자동 증가 키는 증가 할 것이다.
장점 : 간단합니다.
단점 : 1. 자동 증가 키는 계속 증가 할 것이다. 2. 다른 오류는 데이터 변환 오류와 같은 무시됩니다.
장점 : 자동 증가 키는 증가하지 않습니다.
단점 : 외모 상대적으로 복잡.
-
==============================
3.사용 ON DUPLICATE KEY UPDATE ..., 음 : 업데이트가 두 번째 작업을위한 자원을 사용하기 때문에.
사용 ON DUPLICATE KEY UPDATE ..., 음 : 업데이트가 두 번째 작업을위한 자원을 사용하기 때문에.
사용 INSERT가 무시 ... 음 : 뭔가 잘못되면 당신이 오류를 처리 할 수 있도록 MySQL은, 모든 오류를 표시하지 않습니다. 쿼리에 대해 걱정하지 않은 경우에만 사용합니다.
from https://stackoverflow.com/questions/4596390/insert-on-duplicate-key-do-nothing by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 엑셀 함수는 워크 시트 데이터에 대한 쿼리 SQL-처럼 만들어? (0) | 2020.04.09 |
---|---|
[SQL] MySQL은 달과 연도 별 그룹 (0) | 2020.04.09 |
[SQL] 이 SQL 문에 대한 실행 순서는 무엇인가 (0) | 2020.04.09 |
[SQL] 어떻게 같은 SELECT 문에서 DISTINCT와 ORDER BY를 사용 하는가? (0) | 2020.04.09 |
[SQL] SQL 문은 전날 모든 행을 선택합니다 (0) | 2020.04.09 |