Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để tránh chèn các hàng trùng lặp trong MySQL?

Để tránh chèn các hàng trùng lặp trong MySQL, bạn có thể sử dụng UNIQUE (). Cú pháp như sau -

ALTER TABLE yourTableName ADD UNIQUE(yourColumnName1,yourColumnName2,...N);

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng.

Truy vấn để tạo bảng như sau -

mysql> create table avoidInsertingDuplicateRows
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> FirstValue int,
   -> SecondValue int
   -> );
Query OK, 0 rows affected (0.53 sec)

Bây giờ hãy kiểm tra mô tả của bảng bằng lệnh desc.

Truy vấn như sau -

mysql> desc avoidInsertingDuplicateRows;

Mẫu Sau đây là đầu ra -

+-------------+---------+------+-----+---------+----------------+
| 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)

Đây là truy vấn để tránh chèn các hàng trùng lặp trong MySQL. Chúng tôi sẽ thiết lập nó bằng lệnh insert để chèn các bản ghi trong bảng -

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'

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select.

Truy vấn như sau -

mysql> select *from avoidInsertingDuplicateRows;

Đây là kết quả -

+----+------------+-------------+
| Id | FirstValue | SecondValue |
+----+------------+-------------+
| 1  | 10         | 20          |
+----+------------+-------------+
1 row in set (0.00 sec)