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)

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程