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

MySQL에서 고유하도록 복합 키를 구성하는 방법은 무엇입니까?

<시간/>

복합 키를 고유하게 구성하려면 ADD UNIQUE 명령을 사용해야 합니다. 다음은 구문입니다 -

alter table yourTableName add unique
yourUniqueName( yourColumnName1,yourColumnName2,.......N);

먼저 테이블을 생성해 보겠습니다. 다음은 쿼리입니다 -

mysql> create table makeCompositeKeyDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> StudentName varchar(40),
   -> StudentAge int,
   -> StudentGrade char(1)
   -> );
Query OK, 0 rows affected (2.34 sec)

이제 DESC 명령을 사용하여 테이블의 설명을 확인하십시오. 다음은 쿼리입니다 -

mysql> desc makeCompositeKeyDemo;

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

+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| Id           | int(11)     | NO   | PRI | NULL    | auto_increment |
| StudentName  | varchar(40) | YES  |     | NULL    |                |
| StudentAge   | int(11)     | YES  |     | NULL    |                |
| StudentGrade | char(1)     | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+
4 rows in set (1.65 sec)

다음은 고유한 복합 키를 형성하는 쿼리입니다 -

mysql> alter table makeCompositeKeyDemo add unique
Name_Age_Grade( StudentName,StudentAge,StudentGrade);
Query OK, 0 rows affected (0.69 sec)
Records: 0 Duplicates: 0 Warnings: 0

이제 테이블 설명을 다시 한 번 확인하십시오. 다음은 쿼리입니다 -

mysql> desc makeCompositeKeyDemo;

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

+--------------+-------------+------+-----+---------+----------------+
| Field        | Type        | Null | Key | Default | Extra          |
+--------------+-------------+------+-----+---------+----------------+
| Id           | int(11)     | NO   | PRI | NULL    | auto_increment |
| StudentName  | varchar(40) | YES  | MUL | NULL    |                |
| StudentAge   | int(11)     | YES  |     | NULL    |                |
| StudentGrade | char(1)     | YES  |     | NULL    |                |
+--------------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)