📜  mysql 设置字段唯一 - SQL (1)

📅  最后修改于: 2023-12-03 15:33:03.861000             🧑  作者: Mango

MySQL 设置字段唯一 - SQL

在 MySQL 数据库中,可以通过设置字段唯一(Unique)来确保插入数据时不会有重复的值出现,从而维护数据完整性。本文将介绍如何使用 SQL 语句在 MySQL 中设置字段唯一。

创建表

首先需要创建一个表,用于演示如何设置字段唯一。下面是创建一个名为 tbl_users 的表的 SQL 语句:

CREATE TABLE `tbl_users` (
  `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(20) NOT NULL,
  `email` VARCHAR(50) NOT NULL,
  `password` VARCHAR(32) NOT NULL,
  PRIMARY KEY (`id`)
);

表中包含 idusernameemailpassword 四个字段,其中 id 是主键。

设置字段唯一

要设置字段唯一,需要使用 UNIQUE 约束。下面是针对 usernameemail 字段分别加上 UNIQUE 约束的 SQL 语句:

-- 设置 `username` 字段唯一
ALTER TABLE `tbl_users` ADD UNIQUE (`username`);

-- 设置 `email` 字段唯一
ALTER TABLE `tbl_users` ADD UNIQUE (`email`);

以上 SQL 语句分别对 tbl_users 表的 usernameemail 字段加上了 UNIQUE 约束。

示例

下面是一个示例,将演示如何在 MySQL 中设置字段唯一并避免重复插入数据。

首先,在 tbl_users 表中插入一条数据:

INSERT INTO `tbl_users` (`username`, `email`, `password`) VALUES ('john', 'john@example.com', '123456');

然后,尝试再次插入相同的数据:

INSERT INTO `tbl_users` (`username`, `email`, `password`) VALUES ('john', 'john@example.com', '123456');

此时将会提示以下错误:

ERROR 1062 (23000): Duplicate entry 'john@example.com' for key 'email'

这是因为在插入第二条数据时,由于 email 字段被设置为唯一,且已经存在值为 john@example.com 的记录,导致插入失败。

总结

本文介绍了如何在 MySQL 中设置字段唯一,以确保插入数据时不会有重复的值出现。使用 UNIQUE 约束可以避免数据冲突,提高数据的完整性和质量。