MySQL 如何避免插入重复的行
为了避免在MySQL中插入重复的行,可以使用UNIQUE()。语法如下 −
ALTER TABLE 你的表名 ADD UNIQUE(你的列名1, 你的列名2,...N);
为了理解上述语法,让我们创建一张表。
创建表的查询语句如下 −
mysql> create table avoidInsertingDuplicateRows
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> FirstValue int,
-> SecondValue int
-> );
Query OK, 0 rows affected (0.53 sec)
现在使用desc命令检查表的描述信息。
查询语句如下 −
mysql> desc avoidInsertingDuplicateRows;
样例输出如下 −
+-------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------+------+-----+---------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| FirstValue | int(11) | YES | | NULL | |
| SecondValue | int(11) | YES | | NULL | |
+-------------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
以下是在MySQL中避免插入重复行的查询语句。我们将使用insert命令将记录插入表中 −
mysql> insert into avoidInsertingDuplicateRows(FirstValue,SecondValue) values(10,20);
Query OK, 1 row affected (0.24 sec)
mysql> insert into avoidInsertingDuplicateRows(FirstValue,SecondValue) values(10,20);
ERROR 1062 (23000): Duplicate entry '10-20' for key 'FirstValue'
使用select语句显示表中的所有记录。
查询语句如下 −
mysql> select *from avoidInsertingDuplicateRows;
输出如下 −
+----+------------+-------------+
| Id | FirstValue | SecondValue |
+----+------------+-------------+
| 1 | 10 | 20 |
+----+------------+-------------+
1 row in set (0.00 sec)
阅读更多:MySQL 教程