如何強制執行 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)

更新日期: 30-7-2019

48 次檢視

啟動您的事業

完成課程後可獲得認證

開始
廣告
© . All rights reserved.