Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để triển khai khóa CANDIDATE trong bất kỳ bảng MySQL nào?

Mỗi quan hệ có thể có một hoặc nhiều khóa ứng viên. Một trong những khóa ứng viên này được gọi là Khóa chính. Mỗi khóa ứng viên đủ điều kiện cho Khóa chính. Do đó, các ứng cử viên cho Khóa chính được gọi là Khóa ứng viên. Để triển khai khóa ứng viên trong MySQL, hãy đặt nhiều cột làm khóa duy nhất. Các khóa này sẽ đủ điều kiện cho khóa ứng viên như trong cú pháp bên dưới -

alter table yourTableName add unique key anyName(yourColumnName1,yourColumnName2);

Trước tiên, hãy để chúng tôi tạo -

mysql> create table DemoTable1400
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> Name varchar(40),
   -> Age int
   -> );
Query OK, 0 rows affected (0.50 sec)

Sau đây là truy vấn để triển khai khóa CANDIDATE trong bất kỳ MySQL nào -

mysql> alter table DemoTable1400 add unique key name_age_unique(Name,Age);
Query OK, 0 rows affected (0.67 sec)
Records: 0  Duplicates: 0  Warnings: 0

Chèn một số bản ghi vào bảng bằng cách sử dụng chèn -

mysql> insert into DemoTable1400(Name,Age) values('Chris',23);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1400(Name,Age) values('Chris',23);
ERROR 1062 (23000): Duplicate entry 'Chris-23' for key 'name_age_unique'
mysql> insert into DemoTable1400(Name,Age) values('David',23);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1400(Name,Age) values('Chris',24);
Query OK, 1 row affected (0.10 sec)

Hiển thị tất cả các bản ghi từ bảng bằng select -

mysql> select * from DemoTable1400;

Điều này sẽ tạo ra kết quả sau -

+----+-------+------+
| Id | Name  | Age  |
+----+-------+------+
|  1 | Chris |   23 |
|  4 | Chris |   24 |
|  3 | David |   23 |
+----+-------+------+
3 rows in set (0.00 sec)