如何防止在 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)

更新時間: 30-Jul-2019

457次訪問

開啟你的 職業

完成課程後獲得認證

開始
廣告
© . All rights reserved.