MySQL 如何防止在 MySQL 表中输入重复条目
如果不允许在 MySQL 表中输入任何重复条目,您需要添加唯一键。语法如下 –
alter ignore table yourTableName add constraint 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)
阅读更多:MySQL 教程
极客教程