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 sở hữu một chuẩn được tìm đến tắt là ACID bao gồm 4 thuộc tính:
  • Atomicity (Tính tự trị): đảm bảo hầu hết 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 mọi các thao tác trên cơ sở data được chuyển đổi sau khi giao dịch thành công và không xảy ra lỗi.
  • Isolation (Tính cô lập): đảm bảo transaction này vận hành độc lập so với transaction khác. Ví dụ C đang chuyển tiền thì sẽ không tác động tới D chuyển tiền.
  • Durability (Tính bền vững): chắc chắn thành quả hoặc ảnh hưởng của transaction vẫn luôn tồn tại, kể cả khi chương trình xảy ra lỗi.
Transaction sql serverTrong Laravel bạn thường xuyên dùng transaction đơn giản 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 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]);
);
5/5 - (1 vote)

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

Nguyễn Ngọc Kiên (sieutocviet.net)

Với hơn 5 năm thực chiến Wordpress, asp.net 5 năm thực chiến trong quản trị web site tư vấn giải pháp Seo top, Kinh doanh online tối ưu nhất cho công ty.
Hiện là leader kinh doanh tại Siêu Tốc Việt.