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

Ngăn chặn việc chèn trùng lặp tổ hợp cột trong MySQL bằng UNIQUE CONSTRAINT

Giải pháp

Tạo ràng buộc UNIQUE trên tổ hợp các cột (Value1, Value2) để đảm bảo không có hai hàng giống nhau về tổ hợp này.

1. Tạo bảng

mysql> create table DemoTable (
    Value1 int,
    Value2 int
);
Query OK, 0 rows affected (0.47 sec)

2. Thêm UNIQUE CONSTRAINT

mysql> alter table DemoTable
    add constraint Value1_Value2_ConstraintKey unique(Value1, Value2);
Query OK, 0 rows affected (0.80 sec)

3. Thử chèn dữ liệu (có trùng tổ hợp)

mysql> insert into DemoTable values(10,10);  -- OK
mysql> insert into DemoTable values(10,20);  -- OK
mysql> insert into DemoTable values(10,10);  -- LỖI Duplicate entry '10-10'
mysql> insert into DemoTable values(20,10);  -- OK
mysql> insert into DemoTable values(20,20);  -- OK
mysql> insert into DemoTable values(20,10);  -- LỖI Duplicate entry '20-10'

4. Xem dữ liệu cuối cùng

mysql> select * from DemoTable;
+--------+--------+
| Value1 | Value2 |
+--------+--------+
| 10     | 10     |
| 10     | 20     |
| 20     | 10     |
| 20     | 20     |
+--------+--------+
4 rows in set (0.00 sec)

Lưu ý: Tên ràng buộc (Value1_Value2_ConstraintKey) nên đặt có ý nghĩa để dễ quản lý.