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

Triển khai CHÈN… TRÊN CẬP NHẬT KHÓA DUPLICATE trong MySQL


Khi chèn một hàng mới vào bảng nếu hàng đó gây ra sự trùng lặp trong chỉ mục DUY NHẤT hoặc TỪ KHÓA CHÍNH thì sẽ xảy ra lỗi. Để khắc phục điều này, hãy sử dụng CẬP NHẬT KHÓA KÉP BẬT. Khi sử dụng điều này trong câu lệnh INSERT, hàng hiện có sẽ được cập nhật các giá trị mới.

Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable
   -> (
   -> Value int
   -> );
Query OK, 0 rows affected (0.61 sec)

Đây là truy vấn để tạo chỉ mục -

mysql> create unique index value_index on DemoTable(Value);
Query OK, 0 rows affected (0.77 sec)
Records: 0 Duplicates: 0 Warnings: 0

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable values(40) on duplicate key update Value=Value+1000;
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values(50) on duplicate key update Value=Value+1000;
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values(40) on duplicate key update Value=Value+1000;
Query OK, 2 rows affected (0.15 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select *from DemoTable;

Điều này sẽ tạo ra kết quả sau -

+-------+
| Value |
+-------+
|    50 |
|  1040 |
+-------+
2 rows in set (0.00 sec)