MySQL是开源的关系型数据库管理系统。它允许用户存储和处理大量结构化数据,并提供了一个稳定的、高效的数据管理方案。MySQL提供各种特性,其中之一就是unique。
CREATE TABLE students (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(50) UNIQUE,
password VARCHAR(30) NOT NULL
);
在上述代码中,关键字unique被用来定义email列的一个唯一约束条件。该约束条件确保了email列中的每个值都是唯一的。
使用unique的另一个场景是创建联合索引。如果在多列中使用unique约束条件,则表明这些列必须保证唯一。在下面这个联合索引的例子中,surname和firstname两列联合起来,作为一个索引来使用:
CREATE TABLE students (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
surname VARCHAR(30) NOT NULL,
firstname VARCHAR(30) NOT NULL,
dob DATE,
UNIQUE (surname,firstname)
);
下面是一个unique约束条件的例子,向students表中插入一行数据:
INSERT INTO students (name, email, password)
VALUES ('John Doe', 'john.doe@example.com', '123456');
如果再尝试插入一行email列中已经存在的数据,那么会出现一个错误提示:
ERROR 1062 (23000): Duplicate entry 'john.doe@example.com' for key 'email'
这个错误提示就是MySQL告诉我们email列的唯一约束条件已被违反。这是因为我们尝试插入了一行email字段具有相同值的数据。
总结来说,unique是MySQL中一个用来保证数据唯一性的约束条件,可以应用到单个字段或联合索引中。对于需要保证数据唯一性的情况,我们可以使用unique约束条件。