MySQL – 让一对值成为唯一

MySQL – 让一对值成为唯一

在MySQL中,我们常常需要保证一对特定的值是唯一的,这时候我们可以使用“唯一约束(UNIQUE CONSTRAINT)”来限制这样的唯一性要求。

例如,我们有一个表格“students”,其中有两个字段“name”和“id”,我们希望每个“name”和“id”这对值不能有一样的,怎么办呢?我们可以使用如下的SQL语句:

CREATE TABLE students (
    name VARCHAR(50) NOT NULL,
    id INT(10) NOT NULL,
    PRIMARY KEY (name, id),
    UNIQUE KEY (id, name)
);

在表格的建立过程中,我们定义了“students”表格中的两个字段“name”和“id”为复合主键(PRIMARY KEY)。这意味着每个“name”和“id”组合在一起必须是唯一的,而单独的“name”或“id”则可以重复;同时我们还使用了一个UNIQUE约束,这使得唯一键为(id, name)。

举个例子,表格中可以这么定义:

name       | id
-----------|-----
Alice      | 1
Bob        | 2
Charlie    | 3
Dave       | 1 -- 如果尝试这一行,会导致一个错误
Alice      | 4

以上表格可以被解读为:

  • Alice的编号是1
  • Bob的编号是2
  • Charlie的编号是3
  • Dave的编号是1,但这会因重复而失败
  • Alice的编号是4

注意,在复合主键中,“name”必须在“id”之前定义,因为我们在主键定义中先定义的字段优先级更高,也就是说,优先级高的字段是我们用于约束唯一性的字段。

阅读更多:MySQL 教程

总结

通过使用UNIQUE约束来限制MySQL中组合字段的唯一约束要求,我们可以保证一对特定的值是唯一的。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程