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

기존 테이블에 고유 키를 어떻게 추가합니까(고유하지 않은 행 포함)?

<시간/>

alter 명령을 사용하여 기존 테이블에 고유 키를 추가할 수 있습니다. 구문은 다음과 같습니다 -

ALTER TABLE yourTableName ADD CONSTRAINT yourConstraintName UNIQUE(yourColumnName1,yourColumnName2,............N);

위의 개념을 이해하기 위해 몇 개의 열이 있는 테이블을 만들어 보겠습니다. 테이블 생성 쿼리 -

mysql> create table MovieCollectionDemo
   −> (
      −> MovieId int,
      −> MovieDirectorName varchar(200),
      −> NumberOfSongs int unsigned
   −> );
Query OK, 0 rows affected (0.62 sec)

이제 테이블에 고유 제약 조건이 없는지 확인할 수 있습니다. 고유 제약 조건을 확인하는 쿼리는 다음과 같습니다. -

mysql> desc MovieCollectionDemo;

다음은 출력입니다 -

+-------------------+------------------+------+-----+---------+-------+
| Field             | Type             | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+-------+
| MovieId           | int(11)          | YES  |     | NULL    |       |
| MovieDirectorName | varchar(200)     | YES  |     | NULL    |       |
| NumberOfSongs     | int(10) unsigned | YES  |     | NULL    |       |
+-------------------+------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

이제 위의 구문에서 고유 키를 추가할 수 있습니다. MovieId 열에 고유 키를 추가하고 있습니다. 쿼리는 다음과 같습니다 -

mysql> alter table MovieCollectionDemo add constraint uni_moviecollectio unique(MovieId);
Query OK, 0 rows affected (0.46 sec)
Records: 0 Duplicates: 0 Warnings: 0

전체 테이블과 MovieId 열을 보고 고유 키가 있는지 확인합시다.

mysql> desc MovieCollectionDemo;

다음은 출력입니다 -

+-------------------+------------------+------+-----+---------+-------+
| Field             | Type             | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------+-------+
| MovieId           |          int(11) | YES | UNI |     NULL |       |
| MovieDirectorName |     varchar(200) | YES |     |     NULL |       |
| NumberOfSongs     | int(10) unsigned | YES |     |     NULL |       |
+-------------------+------------------+------+-----+---------+-------+
3 rows in set (0.02 sec)

위의 출력은 "UNI"를 표시하며, 이는 "MovieId" 필드에 고유 키가 있음을 의미합니다.