如何在MySQL中防止重复插入?

如何在MySQL中防止重复插入?

你可以使用UNIQUE INDEX来实现,如下所示:

alter table yourTableName ADD UNIQUE INDEX(yourColumnName1, yourColumnName2,....N);

首先我们创建一个表 −

mysql> create table DemoTable
   -> (
   -> Value1 int,
   -> Value2 int
   -> );
Query OK, 0 rows affected (0.55 sec)

接下来执行以下代码来添加唯一索引 −

mysql> alter table DemoTable ADD UNIQUE INDEX(Value1, Value2);
Query OK, 0 rows affected (0.54 sec)
Records: 0  Duplicates: 0  Warnings: 0

使用INSERT命令将记录插入到表中 −

注意 − 使用INSERT IGNORE命令而不是INSERT命令。如果记录不重复,则MySQL会像往常一样将其插入。如果记录重复,则IGNORE关键字将告诉MySQL将其静默丢弃而不生成错误。

mysql> insert ignore into DemoTable values(10,20);
Query OK, 1 row affected (0.14 sec)

mysql> insert ignore into DemoTable values(10,20);
Query OK, 0 rows affected, 1 warning (0.10 sec)

使用SELECT语句显示表中的所有记录 −

mysql> select *from DemoTable;

阅读更多:MySQL 教程

输出

此代码将生成以下输出 −

+--------+--------+
| Value1 | Value2 |
+--------+--------+
|     10 |   20   |
+--------+--------+
1 row in set (0.00 sec)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程