Câu lệnh Insert-Update, Merge trong MySQL

2022-03-20 14:48:37

Trong bài đăng này, tôi đang chia sẻ một minh chứng về câu lệnh hợp nhất cho Insert-Update trong MySQL.

Đối với tất cả các nhà phát triển cơ sở dữ liệu, câu lệnh hợp nhất rất phổ biến để xử lý chèn, cập nhật và xóa vào một câu lệnh duy nhất.

Microsoft SQL Server cung cấp câu lệnh hợp nhất trong đó bạn có thể quản lý Chèn, cập nhật và xóa và có thể tạo một câu lệnh duy nhất.

Nhưng thật không may, máy chủ MySQL không có bất kỳ Câu lệnh Hợp nhất mặc định nào.
Nó có một tùy chọn thay thế tương tự để hợp nhất Chèn, Cập nhật.

You can use INSERT ON DUPLICATE KEY UPDATE in MySQL.

Đầu tiên, hãy tạo bảng mẫu với dữ liệu:

Sử dụng INSERT ON DUPLICATE KEY UPDATE:

Trong đoạn mã trên, bạn có thể thấy EmpNumber là Khóa chính và tôi đang cố chèn cùng một EmpNumber = 2 với EmpName khác.

Như bạn có thể kiểm tra, tôi cũng đã đề cập đến CẬP NHẬT KHÓA DUPLICATE với Chèn Tuyên bố.

Bây giờ, câu lệnh này đầu tiên sẽ kiểm tra giá trị của dữ liệu và nếu dữ liệu có cùng một khóa, thì bên trong thực thi câu lệnh cập nhật, nếu không, nó thực hiện câu lệnh chèn.

Kết quả:

Bằng cách này, bạn có thể sử dụng câu lệnh ON DUPLICATE KEY UPDATE để hợp nhất câu lệnh Chèn và Cập nhật.

Điểm quan trọng:
Nếu bạn đang sử dụng câu lệnh ON DUPLICATE KEY UPDATE, bảng của bạn phải có Khóa chính hoặc ít nhất một Khóa duy nhất.

Nếu bạn đang sử dụng số Auto_Increment, hàm LAST_INSERT_ID () của bạn sẽ không hoạt động bình thường vì nếu cập nhật dữ liệu, cũng như Auto_Increment ID sẽ tăng một số trong nội bộ. Đây là một nhược điểm của câu nói này.

Xem thêm:


Chia sẻ: