如何不允许在 MySQL 表中输入重复条目?

mysqlmysqli database

要不允许在 MySQL 表中输入任何重复条目,您需要添加唯一键。语法如下 −

alter ignore table yourTableName add constrain unique key(yourColumName);

上述语法设置了唯一键。为了理解上述语法,让我们创建一个表。

以下是创建表的查询 −

mysql> create table RemoveDuplicateEntry
   −> (
   −> Id int,
   −> Name varchar(100)
   −> )ENGINE = MyISAM;
Query OK, 0 rows affected (0.15 sec)

现在您可以实现开头讨论的语法。查询如下 −

mysql> alter table RemoveDuplicateEntry add constraint unique key(Id);
Query OK, 0 rows affected (0.56 sec)
Records: 0 Duplicates: 0 Warnings: 0

现在让我们检查一下表结构。查询如下 −

mysql> desc RemoveDuplicateEntry;

以下是输出 −

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Id    | int(11)      | YES  | UNI | NULL    |       |
| Name  | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

现在,让我们插入一些有重复条目的记录。由于我们在上文中使用了 UNIQUE −,因此不会插入这些记录。

插入记录的查询如下 −

mysql> insert into RemoveDuplicateEntry values(101,'John');
Query OK, 1 row affected (0.06 sec)

现在,如果您再次插入相同的记录,则会出现以下错误 −

mysql> insert into RemoveDuplicateEntry values(101,'John');
ERROR 1062 (23000): Duplicate entry '101' for key 'Id'

使用 select 语句检查表中的所有记录。查询如下 −

mysql> select *from RemoveDuplicateEntry;

以下是显示没有重复条目的记录的输出 −

+------+------+
| Id   | Name |
+------+------+
| 101  | John |
+------+------+
1 row in set (0.00 sec)

相关文章