Giao dịch là một tập hợp các thao tác mà bạn có thể thực hiện trên cơ sở dữ liệu mà có thể được hoàn thành hoặc hủy bỏ (rollback) nếu một trong các thao tác đó không thành công. MySQL hỗ trợ các giao dịch cho các bảng được lưu trữ bằng engine InnoDB. Dưới đây là các bước chi tiết để thực hiện giao dịch trong MySQL.
Để bắt đầu một giao dịch trong MySQL, bạn sử dụng lệnh START TRANSACTION
hoặc BEGIN
. Đây là cú pháp để bắt đầu giao dịch:
START TRANSACTION;
Hoặc:
BEGIN;
Bắt đầu một giao dịch:
START TRANSACTION;
Sau khi giao dịch đã được bắt đầu, bạn có thể thực hiện một hoặc nhiều thao tác SQL như INSERT, UPDATE, hoặc DELETE. Các thao tác này sẽ không được xác nhận cho đến khi bạn thực hiện lệnh COMMIT.
Giả sử bạn muốn thêm một bản ghi mới vào bảng customers
:
INSERT INTO customers (name, email) VALUES ('John Doe', '[email protected]');
Khi bạn đã thực hiện xong các thao tác và muốn lưu lại những thay đổi, bạn sử dụng lệnh COMMIT
. Điều này sẽ xác nhận tất cả các thay đổi đã thực hiện trong giao dịch.
COMMIT;
Sau khi thực hiện các thao tác, bạn có thể xác nhận giao dịch như sau:
COMMIT;
Nếu bạn phát hiện có lỗi trong quá trình thực hiện giao dịch hoặc muốn hủy bỏ tất cả các thay đổi đã thực hiện trong giao dịch, bạn có thể sử dụng lệnh ROLLBACK
. Lệnh này sẽ hoàn tác tất cả các thao tác đã thực hiện từ khi giao dịch bắt đầu.
ROLLBACK;
Nếu có lỗi xảy ra sau khi bạn đã thêm một bản ghi nhưng trước khi bạn thực hiện commit, bạn có thể hủy bỏ giao dịch:
ROLLBACK;
Dưới đây là quy trình hoàn chỉnh bao gồm bắt đầu giao dịch, thực hiện thao tác, commit hoặc rollback:
START TRANSACTION; INSERT INTO customers (name, email) VALUES ('John Doe', '[email protected]'); -- Kiểm tra điều kiện để quyết định commit hay rollback IF (some_error_condition) THEN ROLLBACK; ELSE COMMIT; END IF;
Giao dịch trong MySQL là một phần quan trọng trong việc đảm bảo tính toàn vẹn của dữ liệu. Sử dụng các lệnh START TRANSACTION
, COMMIT
, và ROLLBACK
giúp bạn quản lý các thao tác trên cơ sở dữ liệu một cách hiệu quả.