Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL INSERT IGNORE 문을 무시하고 테이블에 중복 값이 ​​삽입되면 오류를 표시합니다.

<시간/>

먼저 테이블을 생성하겠습니다 -

mysql> create table DemoTable
(
   FirstName varchar(100)
);
Query OK, 0 rows affected (0.58 sec)

공식 MySQL 문서에 명시된 바와 같이 "IGNORE 없이 테이블의 기존 UNIQUE 인덱스 또는 PRIMARY KEY 값을 복제하는 행은 중복 키 오류를 일으키고 명령문이 중단됩니다 ".

따라서 이제 고유 인덱스를 추가해 보겠습니다 -

mysql> alter table DemoTable add unique index(FirstName);
Query OK, 0 rows affected (0.50 sec)
Records: 0 Duplicates: 0 Warnings: 0

삽입 명령을 사용하여 테이블에 일부 레코드를 삽입하십시오. 보시다시피 INSERT IGNORE를 사용하지 않았기 때문에 중복 레코드를 삽입하는 동안 오류가 표시됩니다 -

mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.32 sec)
mysql> insert into DemoTable values('Robert');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Robert');
ERROR 1062 (23000): Duplicate entry 'Robert' for key 'FirstName'
mysql> insert into DemoTable values('Chris');
ERROR 1062 (23000): Duplicate entry 'Chris' for key 'FirstName'
mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.12 sec)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select *from DemoTable;

이것은 다음과 같은 출력을 생성합니다 -

+-----------+
| FirstName |
+-----------+
| Chris     |
| David     |
| Robert    |
| Sam       |
+-----------+
4 rows in set (0.00 sec)