MYSQL, INSERT IGNORE INTO 사용법
- Database
- 2023. 11. 9.
INSERT IGNORE INTO는 삽입할 수 없는 구문이 있는 경우 오류를 뱉지 않고 그다음 라인의 쿼리를 계속 실행합니다. 한 번에 여러 INSERT 쿼리를 돌리는데, 그중 중복 키 값이 포함되어 있다면 전체 쿼리가 실행되지 못하고 중간에 에러가 발생하며 멈춥니다. 중간에 멈추지 않고 끝까지 실행시키고 싶으면 INSERT IGNORE INTO 구문을 활용할 수 있습니다.
INSERT IGNORE INTO
구문
INSERT IGNORE INTO 테이블명 (컬럼) VALUES (값)
예시)
id 컬럼이 기본키인 users 테이블이 있습니다. 여기에 테이터를 insert 하는 경우를 보겠습니다.
아래 쿼리처럼 id 값을 1로 넣으면 에러가 발생합니다. id 값 2를 넣어도 마찬가지입니다.
INSERT INTO users (id, name, email) VALUES (1, 'User One', 'user1@example.com');
여러 insert 구문 가운데 id 값을 1과 2로 넣는 쿼리를 넣어보겠습니다. insert ignore into로 넣으면 중간에 발생하는 오류를 무시하고 쿼리를 멈추지 않고 끝까지 실행합니다.
INSERT IGNORE INTO users (id, name, email) VALUES (3, 'User Three', 'user3@example.com');
INSERT IGNORE INTO users (id, name, email) VALUES (1, 'User One', 'user1@example.com'); -- 무시될 쿼리
INSERT IGNORE INTO users (id, name, email) VALUES (4, 'User Four', 'user4@example.com');
INSERT IGNORE INTO users (id, name, email) VALUES (2, 'User Two', 'user2@example.com'); -- 무시될 쿼리
INSERT IGNORE INTO users (id, name, email) VALUES (5, 'User Five', 'user5@example.com');
쿼리 결과를 보면 영향받은 행은 1과 2를 뺀 3행으로 나타납니다. 중간에 에러를 출력하지 않고 문제없는 insert 명령만 반영됐습니다.
반응형
'Database' 카테고리의 다른 글
HeidiSQL 데이터베이스를 SQL 내보내기 사용법 (0) | 2023.11.08 |
---|---|
토드 오라클 연결 TNS / Direct 차이 (0) | 2023.11.06 |
MYSQL EXPLAIN 사용법 (쿼리 성능 문제 확인) (0) | 2023.11.03 |
MariaDB Ignoring query to other database 발생 이유 (1) | 2023.11.01 |
MYSQL 사용자(user) 호스트 / 권한 개념 정리 (0) | 2023.10.31 |