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 cứ lệnh nào bị lỗi, transaction sẽ dừng lại và rollback DB hầu hết các câu lệnh đã thực thi, trả lại database như là lúc start transaction. Transaction sql server sở hữu 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 tất cả các hành động trong phạm vi một đơn vị transaction là biến 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ự thay đổi.
  • Consistency (Tính nhất quán): chắc chắn hầu hết các thao tác trên cơ sở dữ liệu được thay đổi 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 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 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 chương trình xảy ra lỗi.

Transaction sql serverTrong Laravel bạn thường dùng transaction đơn giản và 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 có 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 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)

Trải qua 3 năm thực chiến Wordpress, asp.net 5 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 công ty.
Hiện là leader kinh doanh tại Siêu Tốc Việt.