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 nắm tới bất kỳ lệnh nào bị lỗi, transaction sẽ dừng lại và rollback DB tất cả 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ị): đảm bảo mọi 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ự chuyển đổi.
  • Consistency (Tính nhất quán): bảo đảm toàn bộ các thao tác trên cơ sở data được đổi thay sau khi giao dịch trở 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 liên quan tới D chuyển tiền.
  • Durability (Tính bền vững): đảm bảo thành quả hoặc liên quan của transaction vẫn luôn tồn tại, kể cả khi hệ thống xảy ra lỗi.

Transaction sql serverTrong Laravel bạn có thể dùng transaction đơn giản dễ dàng bằng 2 cách: Cách bằng tay Để mở đầu transaction: DB::beginTransaction(); Để rollback: DB::rollBack(); Để commit: DB::commit();

Cách tự động: Nếu nắm tới lỗi xảy ra thì sẽ tự động rollback và ngược lại nếu trở 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]);
);

5/5 - (1 bình chọn)

Laravel transaction mysql - Các câu lệnh thực thi tới database

Lê Trương Tấn Lộc (sieutocviet.page)

Với hơn 6 năm kinh nghiệm Laravel 8 năm kinh nghiệm trong quản lý website tư vấn giải pháp Seo google, Digital marketing tối ưu nhất cho doanh nghiệp.
Hiện giữ chức vụ leader kinh doanh tại Siêu Tốc Việt.