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 行(用时 0.60 秒)

下面是使用 insert 命令向表中插入记录的查询语句——

mysql> insert into enforceCompoundUniqueness(StudentName, StudentMobileNumber) 
values('Larry','2322245676');
Query OK,影响了 1 行(用时 0.18 秒)

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 行(用时 0.13 秒)

在上面的查询语句中,如果你尝试插入重复的记录,就会出现错误,因为我们已经强制实施了唯一性。

下面是使用 select 语句从表中显示所有记录的查询语句——

mysql> select * from enforceCompoundUniqueness;

这将输出如下内容——

+-----------+-------------+---------------------+
| StudentId | StudentName | StudentMobileNumber |
+-----------+-------------+---------------------+
| 1         | Larry       | 2322245676          |
| 3         | Sam         | 6475746455          |
+-----------+-------------+---------------------+
共 2 行(用时 0.00 秒)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程