防止项目组合在 MySQL 中重复插入?
要防止项目组合被重复插入,请更改表并在列中设置 UNIQUE,如以下语法所示 −
alter table yourTableName add constraint yourConstraintName unique(yourColumnName1,yourColumnName2,....N);
让我们先创建一个表 −
mysql> create table DemoTable ( Value1 int, Value2 int ); Query OK, 0 rows affected (0.47 sec)
以下是如何防止项目组合被重复插入的查询 −
mysql> alter table DemoTable add constraint Value1_Value2_ConstraintKey unique(Value1,Value2); Query OK, 0 rows affected (0.80 sec) Records : 0 Duplicates : 0 Warnings : 0
使用 insert 命令向表中插入一些记录。在此处,当我们尝试插入重复组合时,会出现 “Duplicate entry” 错误,并且重复插入将不起作用 −
mysql> insert into DemoTable values(10,10); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(10,20); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(10,10); ERROR 1062 (23000) : Duplicate entry '10-10' for key 'Value1_Value2_ConstraintKey' mysql> insert into DemoTable values(20,10); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(20,20); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable values(20,10); ERROR 1062 (23000) : Duplicate entry '20-10' for key 'Value1_Value2_ConstraintKey'
使用 select 语句显示表中的所有记录 −
mysql> select *from DemoTable;
这将生成以下输出 −
+--------+--------+ | Value1 | Value2 | +--------+--------+ | 10 | 10 | | 10 | 20 | | 20 | 10 | | 20 | 20 | +--------+--------+ 4 rows in set (0.00 sec)
广告