Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: [SQL 10.3] Transaction: COMMIT chuyển tiền, ROLLBACK thao tác nhầm

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 10: Index & Transaction + Review toàn bộ khóa — khóa SQL

    Viết một script gồm hai transaction liên tiếp:

    Giao dịch 1 (COMMIT): chuyển 10.000.000 từ tài khoản account_id = 1 sang tài khoản account_id = 2 — hai câu UPDATE (trừ + cộng) nằm trong cùng một transaction rồi COMMIT.

    Giao dịch 2 (ROLLBACK): một nhân viên nhập nhầm; mở transaction mới, chạy UPDATE Accounts SET status = 'CLOSED' WHERE customer_id = 2 và UPDATE Accounts SET balance = 0 WHERE customer_id = 2, sau đó nhận ra sai sót và ROLLBACK để hoàn nguyên toàn bộ.

    • SQL Server: BEGIN TRANSACTION ... COMMIT TRANSACTION / ROLLBACK TRANSACTION.
    • MySQL: START TRANSACTION ... COMMIT / ROLLBACK.

    Hệ thống chấm in account_id, balance, status của các tài khoản 1, 2, 3, 4.

    • Định dạng đầu vào:

      Bảng Accounts(account_id, customer_id, balance, status).

    • Định dạng đầu ra:

      account_id, balance, status (TAB) của tài khoản 1–4, sắp theo account_id.

    Ví dụ:

    Đầu vào:

    Đầu ra:

    1	57000000.00	ACTIVE
    2	18000000.00	ACTIVE
    3	32000000.00	ACTIVE
    4	8600000000.00	ACTIVE

    Giải thích:

    TK1 giảm 10 triệu, TK2 tăng 10 triệu; các tài khoản của KH2 vẫn ACTIVE và giữ số dư sau ROLLBACK.

    Chủ đề

    📊 SQLSQLSQL: Buổi 10 – Index, Transaction & CapstoneTất cả môn học

    Đang tải editor...