如何在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)
极客教程