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

MySQL에서 복합 고유성을 어떻게 적용할 수 있습니까?

<시간/>

UNIQUE 키워드를 사용하여 MySQL에서 복합 고유성을 적용할 수 있습니다. 다음은 테이블 열에 UNIQUE 키워드를 추가하는 구문입니다.

구문은 다음과 같습니다.

CREATE TABLE yourTableName
(
   yourColumnName1 datatype,
   yourColumnName2 datatype,
   yourColumnName3 datatype,
   .
   .
   N
   UNIQUE yourConstarintName(yourColumnName2,yourColumnName3)
);

위의 개념을 이해하기 위해 일부 열이 있는 테이블을 만들고 테이블에 고유한 제약 조건을 추가해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table UniqueDemo
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> StudentName varchar(100),
   -> StudentAge int,
   -> StudentMarks int
   -> ,
   -> UNIQUE age_NameConstraint(StudentName,StudentAge)
   -> );
Query OK, 0 rows affected (0.76 sec)

SHOW 명령을 사용하여 테이블에서 제약 조건 이름을 표시할 수 있습니다.

구문은 다음과 같습니다.

SHOW INDEX FROM yourTableName;

테이블의 고유 제약 조건을 표시하려면 위의 구문을 사용하십시오. 쿼리는 다음과 같습니다 -

mysql> SHOW INDEX FROM UniqueDemo;

다음은 출력입니다.

+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| Table      | Non_unique | Key_name           | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
| uniquedemo |          0 | PRIMARY            |            1 | StudentId   | A         |           0 | NULL     | NULL   |      | BTREE      |         |               | YES     |
| uniquedemo |          0 | age_NameConstraint |            1 | StudentName | A         |           0 | NULL     | NULL   | YES  | BTREE      |         |               | YES     |
| uniquedemo |          0 | age_NameConstraint |            2 | StudentAge  | A         |           0 | NULL     | NULL   | YES  | BTREE      |         |               | YES     |
+------------+------------+--------------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+
3 rows in set (0.33 sec)