Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách ngăn chặn dữ liệu trùng lặp khi INSERT vào bảng MySQL

Để ngăn chặn bản ghi trùng lặp, thêm ràng buộc UNIQUE KEY (hoặc PRIMARY KEY) cho cột cần duy nhất.

Cú pháp:

ALTER TABLE ten_bang ADD CONSTRAINT UNIQUE KEY (ten_cot);

Ví dụ: tạo bảng RemoveDuplicateEntry:

mysql> CREATE TABLE RemoveDuplicateEntry (
    -> Id INT,
    -> Name VARCHAR(100)
    -> ) ENGINE = MyISAM;

Thêm khóa duy nhất cho cột Id:

mysql> ALTER TABLE RemoveDuplicateEntry ADD CONSTRAINT UNIQUE KEY (Id);

Kiểm tra cấu trúc:

mysql> DESC RemoveDuplicateEntry;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| Id    | int(11)      | YES  | UNI | NULL    |       |
| Name  | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

Cột Key hiển thị UNI (Unique).

Thử chèn trùng:

mysql> INSERT INTO RemoveDuplicateEntry VALUES (101, 'John');  -- OK
mysql> INSERT INTO RemoveDuplicateEntry VALUES (101, 'John');  -- LỖI
ERROR 1062 (23000): Duplicate entry '101' for key 'Id'

Dữ liệu chỉ còn 1 bản ghi. Cơ chế này tự động chặn trùng lặp ở cấp database.