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

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

<시간/>

네, 그렇게 할 수 있습니다. 이해를 돕기 위해 먼저 테이블을 만들어 보겠습니다 -

mysql> create table enforceCompoundUniqueness
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> StudentName varchar(40) NOT NULL,
   -> StudentMobileNumber varchar(12) NOT NULL,
   -> UNIQUE StudentName_StudentMobileNumber(StudentName,StudentMobileNumber)
   -> );
Query OK, 0 rows affected (0.60 sec)

다음은 삽입 명령을 사용하여 테이블에 레코드를 삽입하는 쿼리입니다 -

mysql> insert into enforceCompoundUniqueness(StudentName,StudentMobileNumber)
values('Larry','2322245676');
Query OK, 1 row affected (0.18 sec)

mysql> insert into enforceCompoundUniqueness(StudentName,StudentMobileNumber)
values('Larry','2322245676');
ERROR 1062 (23000): Duplicate entry 'Larry-2322245676' for key
'StudentName_StudentMobileNumber'

mysql> insert into enforceCompoundUniqueness(StudentName,StudentMobileNumber)
values('Sam','6475746455');
Query OK, 1 row affected (0.13 sec)

위 쿼리에서 중복 레코드를 삽입하려고 하면 고유성을 적용했기 때문에 오류가 발생할 수 있습니다.

다음은 select 문을 사용하여 테이블의 모든 레코드를 표시하는 쿼리입니다 -

mysql> select * from enforceCompoundUniqueness;

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

+-----------+-------------+---------------------+
| StudentId | StudentName | StudentMobileNumber |
+-----------+-------------+---------------------+
| 1         | Larry       | 2322245676          |
| 3         | Sam         | 6475746455          |
+-----------+-------------+---------------------+
2 rows in set (0.00 sec)