PHP에서 데이터베이스에 레코드 배치를 삽입할 때 고유한 필드인 경우 중복 입력 오류를 무시하는 것이 바람직합니다. 대신 중단 없이 새 레코드만 삽입되도록 하려고 합니다.
삽입하기 전에 기존 항목을 확인하기 위해 SELECT 쿼리를 수행하는 것은 효율적인 접근 방식이 아닙니다. MySQL의 내장 기능을 사용하는 대체 방법은 다음과 같습니다.
INSERT... IGNORE:
이 구문을 사용하면 레코드를 삽입하고 중복이 이미 있으면 무시하십시오. 오류가 발생하지 않습니다.
INSERT IGNORE INTO tbl (field1, field2, ...) VALUES (...);
REPLACE INTO:
이 구문은 기본 키인 경우 기존 레코드를 새 레코드로 덮어씁니다. 성냥. 기본 키가 고유하지 않으면 오류가 발생합니다.
REPLACE INTO tbl (field1, field2, ...) VALUES (...);
INSERT... ON DUPLICATE KEY UPDATE:
이것은 구문은 새 레코드를 삽입하거나 중복된 기본 키가 있는 경우 업데이트를 수행합니다. found.
INSERT INTO tbl (field1, field2, ...) VALUES (...) ON DUPLICATE KEY UPDATE field2 = NEW.field2;
'id' 및 'value' 열이 있고 처음에 'id' =인 레코드가 포함된 'tbl'이라는 테이블을 가정합니다. 1 및 '값' = 1:
REPLACE INTO:
REPLACE INTO tbl (id, value) VALUES (1, 50);
결과: 기존 레코드를 '값' = 50으로 덮어씁니다.
삽입 무시:
INSERT IGNORE INTO tbl (id, value) VALUES (1, 10);
결과: 'id' 1이 이미 존재하므로 중복 항목을 무시합니다.
INSERT... ON DUPLICATE KEY 업데이트:
INSERT INTO tbl (id, value) VALUES (1, 200) ON DUPLICATE KEY UPDATE value = 200;
결과: 기존 레코드를 업데이트합니다. 'id' 1이 이미 존재하므로 'value' = 200입니다.
위 내용은 PHP에서 MySQL을 삽입하는 동안 중복 항목을 효율적으로 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!