Để không cho phép bất kỳ mục trùng lặp nào được nhập vào bảng MySQL, bạn cần thêm khóa duy nhất. Cú pháp như sau -
alter ignore table yourTableName add constraint unique key(yourColumName);
Cú pháp trên đặt khóa duy nhất. Để hiểu cú pháp trên, chúng ta hãy tạo một bảng.
Sau đây là truy vấn để tạo bảng -
mysql> create table RemoveDuplicateEntry −> ( −> Id int, −> Name varchar(100) −> )ENGINE = MyISAM; Query OK, 0 rows affected (0.15 sec)
Bây giờ bạn có thể triển khai cú pháp đã thảo luận ở phần đầu. Truy vấn như sau -
mysql> alter table RemoveDuplicateEntry add constraint unique key(Id); Query OK, 0 rows affected (0.56 sec) Records: 0 Duplicates: 0 Warnings: 0
Hãy để chúng tôi kiểm tra cấu trúc bảng bây giờ. Truy vấn như sau -
mysql> desc RemoveDuplicateEntry;
Sau đây là kết quả -
+-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | Id | int(11) | YES | UNI | NULL | | | Name | varchar(100) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
Bây giờ, chúng ta hãy chèn một số bản ghi có các mục nhập trùng lặp. Điều này sẽ không được chèn vì chúng tôi đã sử dụng UNIQUE ở trên -
Truy vấn để chèn bản ghi như sau -
mysql> insert into RemoveDuplicateEntry values(101,'John'); Query OK, 1 row affected (0.06 sec)
Bây giờ, nếu bạn chèn lại cùng một bản ghi, thì lỗi sau sẽ hiển thị -
mysql> insert into RemoveDuplicateEntry values(101,'John'); ERROR 1062 (23000): Duplicate entry '101' for key 'Id'
Kiểm tra tất cả các bản ghi từ bảng với câu lệnh select. Truy vấn như sau -
mysql> select *from RemoveDuplicateEntry;
Sau đây là đầu ra hiển thị các bản ghi không có mục nhập trùng lặp -
+------+------+ | Id | Name | +------+------+ | 101 | John | +------+------+ 1 row in set (0.00 sec)