Có lẽ giao dịch đã được bao gồm do mã trước đây hoặc có thể trong tương lai mà có thể bao gồm các dữ liệu khác. Có lẽ nhà phát triển đó chỉ đơn giản là tạo thói quen gói mã trong giao dịch, để 'an toàn'?
Nhưng nếu tuyên bố theo nghĩa đen chỉ liên quan đến một bản cập nhật duy nhất cho một hàng, thì thực sự không có lợi ích cho mã đó trong trường hợp này. Một giao dịch không nhất thiết phải 'khóa' bất cứ thứ gì, mặc dù các hành động được thực hiện bên trong nó có thể, tất nhiên. Nó chỉ đảm bảo rằng tất cả các hành động chứa trong đó được thực hiện tất cả hoặc không có gì.
Lưu ý rằng giao dịch không phải là về nhiều bảng - đó là về nhiều bản cập nhật . Đảm bảo rằng nhiều cập nhật xảy ra tất cả hoặc không.
Vì vậy, nếu bạn đang cập nhật cùng một bảng hai lần, sẽ có sự khác biệt khi có hoặc không có giao dịch. Nhưng ví dụ của bạn chỉ hiển thị một câu lệnh cập nhật, có lẽ chỉ cập nhật một bản ghi duy nhất.
Thực tế, các giao dịch có thể đóng gói nhiều bản cập nhật cho cùng một bảng. Hãy tưởng tượng những điều sau đây:
INSERT INTO Transactions (AccountNum, Amount) VALUES (1, 200)
INSERT INTO Transactions (AccountNum, Amount) values (2, -200)
Điều đó nên được bao bọc trong giao dịch, để đảm bảo rằng tiền được chuyển chính xác. Nếu một thất bại, rất nhiều khác.
Nguồn
2012-09-11 12:29:05
Đó là một giao dịch với một câu lệnh duy nhất. Có thể nhà phát triển ban đầu nghĩ rằng các báo cáo/hành động bổ sung có thể được yêu cầu trong tương lai. –