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 đa số 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 gọi tắt là ACID bao gồm 4 thuộc tính:
  • Atomicity (Tính tự trị): bảo đảm mọi các hành động trong phạm vi một đơn vị transaction là biến thành công hoàn toàn. 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): đảm bảo hầu hết các thao tác trên cơ sở dữ liệu được thay đổi sau khi giao dịch trở thành công và không xảy ra lỗi.
  • Isolation (Tính cô lập): đảm bảo 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 ảnh hưởng tới D chuyển tiền.
  • Durability (Tính bền vững): chắc chắn kết quả hoặc thúc đẩy 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 khả năng cao dùng transaction dễ dàng 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 nắm tới lỗi xảy ra thì sẽ tự động rollback và ngược lại nếu 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 vote)

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

Võ Minh Tốt (webseowp.vn)

Có hơn 3 năm kinh nghiệm Drupal 8 năm kinh nghiệm trong quản lý web site tư vấn giải pháp Seo google, Marketing tối ưu nhất cho doanh nghiệp.
Hiện giữ chức vụ quản lý kinh doanh tại Siêu Tốc Việt.