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

중복 항목이 MySQL 테이블에 입력되는 것을 허용하지 않는 방법은 무엇입니까?

<시간/>

MySQL 테이블에 중복 항목이 입력되지 않도록 하려면 고유 키를 추가해야 합니다. 구문은 다음과 같습니다 -

alter ignore table yourTableName add constraint unique key(yourColumName);

위의 구문은 고유 키를 설정합니다. 위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다.

다음은 테이블을 생성하는 쿼리입니다 -

mysql> create table RemoveDuplicateEntry
   −> (
   −> Id int,
   −> Name varchar(100)
   −> )ENGINE = MyISAM;
Query OK, 0 rows affected (0.15 sec)

이제 처음에 설명한 구문을 구현할 수 있습니다. 쿼리는 다음과 같습니다 -

mysql> alter table RemoveDuplicateEntry add constraint unique key(Id);
Query OK, 0 rows affected (0.56 sec)
Records: 0 Duplicates: 0 Warnings: 0

이제 테이블 구조를 확인해보자. 쿼리는 다음과 같습니다 -

mysql> desc RemoveDuplicateEntry;

다음은 출력입니다 -

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Id    | int(11)      | YES  | UNI | NULL    |       |
| Name  | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

이제 중복 항목이 있는 레코드를 삽입해 보겠습니다. 위에서 UNIQUE를 사용했기 때문에 삽입되지 않습니다 -

레코드를 삽입하는 쿼리는 다음과 같습니다 -

mysql> insert into RemoveDuplicateEntry values(101,'John');
Query OK, 1 row affected (0.06 sec)

이제 동일한 레코드를 다시 삽입하면 다음 오류가 표시됩니다. -

mysql> insert into RemoveDuplicateEntry values(101,'John');
ERROR 1062 (23000): Duplicate entry '101' for key 'Id'

select 문으로 테이블의 모든 레코드를 확인하십시오. 쿼리는 다음과 같습니다 -

mysql> select *from RemoveDuplicateEntry;

다음은 중복 항목이 없는 레코드를 표시하는 출력입니다. -

+------+------+
| Id   | Name |
+------+------+
| 101  | John |
+------+------+
1 row in set (0.00 sec)