MYSQL, INSERT IGNORE INTO 사용법

INSERT IGNORE INTO는 삽입할 수 없는 구문이 있는 경우 오류를 뱉지 않고 그다음 라인의 쿼리를 계속 실행합니다. 한 번에 여러 INSERT 쿼리를 돌리는데, 그중 중복 키 값이 포함되어 있다면 전체 쿼리가 실행되지 못하고 중간에 에러가 발생하며 멈춥니다. 중간에 멈추지 않고 끝까지 실행시키고 싶으면 INSERT IGNORE INTO 구문을 활용할 수 있습니다.

INSERT IGNORE INTO

구문

INSERT IGNORE INTO 테이블명 (컬럼) VALUES (값)

 

예시)

id 컬럼이 기본키인 users 테이블이 있습니다. 여기에 테이터를 insert 하는 경우를 보겠습니다.

 

user 테이블

 

아래 쿼리처럼 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');

 

insert ignore into 쿼리

 

쿼리 결과를 보면 영향받은 행은 1과 2를 뺀 3행으로 나타납니다. 중간에 에러를 출력하지 않고 문제없는 insert 명령만 반영됐습니다.

 

영향 받은 행

반응형

댓글

Designed by JB FACTORY