Transaction sql server
Transaction sql server là 1 tập các câu lệnh thực thi tới database, các câu lệnh được thực thi 1 cách tuần tự, nếu có bất kể lệnh nào bị lỗi, transaction sẽ dừng lại và rollback DB toàn bộ các câu lệnh đã thực thi, trả lại database như lúc start transaction. Transaction sql server nắm tới một chuẩn được liên hệ tắt là ACID bao gồm 4 thuộc tính:
- Atomicity (Tính tự trị): chắc chắn đa số các hành động trong phạm vi một đơn vị transaction là trở thành công triệt để. Ngược lại, transaction sẽ bị dừng ngay ở thời điểm lỗi, và sẽ phục hồi quay ngược (rollback) lại thời điểm chưa xảy ra sự đổi thay.
- Consistency (Tính nhất quán): đảm bảo đa số các thao tác trên cơ sở dữ liệu được đổi thay sau khi giao dịch thành công và không xảy ra lỗi.
- Isolation (Tính cô lập): bảo đảm transaction này hoạt động độc lập so với transaction khác. Ví dụ C đang chuyển tiền thì sẽ không tương tác tới D chuyển tiền.
- Durability (Tính bền vững): đảm bảo thành quả hoặc tương tác của transaction vẫn luôn tồn tại, kể cả khi hệ thống xảy ra lỗi.

Trong Laravel bạn khả năng cao dùng transaction đơn giản bằng 2 cách: Cách thủ công Để bắt đầu transaction: DB::beginTransaction(); Để rollback: DB::rollBack(); Để commit: DB::commit();
Cách tự động: Nếu sở hữu lỗi xảy ra thì sẽ tự động rollback và ngược lại nếu biến thành công thì sẽ tự động commit:
DB::transaction(function ()
$user = User::findOrFail($id);
$order = Order::create([
'user_id' => $user->id,
'money' => 1000000,
]);
$availableAmount = $user->amount - 1000000;
$user->update(['amount' => $availableAmount]);
);
Nguyễn Trọng Phúc (sieutocviet.vip)
Với 6 năm kinh nghiệm Laravel 6 năm thực chiến trong quản trị website tư vấn giải pháp Seo google, Marketing tối ưu nhất cho tập đoàn quốc tế.
Hiện giữ chức vụ quản lý kinh doanh tại Siêu Tốc Việt.