AzLearn

تمرين إعادة البناء

Transaction Transfer

أعد كتابة معاملة تنقل مبلغاً بين حسابين باستخدام BEGIN وCOMMIT.

sql ~12 دقيقة متوسط
أعد بناء الكود Rebuild

هذا هو الكود. اكتبه بنفسك.

الكود المرجعي
-- Drill 17 — تحويل رصيد داخل معاملة — SQLite 3.x+
CREATE TABLE accounts (
  id INTEGER PRIMARY KEY,
  balance_halalas INTEGER NOT NULL CHECK (balance_halalas >= 0)
);

INSERT INTO accounts VALUES
  (1, 10000),
  (2, 5000);

BEGIN;
UPDATE accounts
SET balance_halalas = balance_halalas - 1000
WHERE id = 1;

UPDATE accounts
SET balance_halalas = balance_halalas + 1000
WHERE id = 2;
COMMIT;

SELECT SUM(balance_halalas) AS total_halalas
FROM accounts;
اكتب هنا