🔄
Transactions & ACID

Transactions in MySQL

START TRANSACTION, COMMIT, ROLLBACK
💡 Transaction, EK, "DRAFT, DOCUMENT" jaisa, hai — TUM, MULTIPLE, changes, KARTE, HO, LEKIN, WOH, TAB, TAK, "FINAL" nahi, HOTE, JAB, TAK, TUM, SAVE, (COMMIT) NA, karo — agar, kuch, GALAT, hua, UNDO, (ROLLBACK) kiya, ja, sakta hai.

START TRANSACTION, EK, naya, transaction, SHURU, karta hai. COMMIT, saare, changes, PERMANENT, kar, deta hai. ROLLBACK, saare, changes, ko, UNDO, kar, deta hai, agar, kuch, GALAT, ho, jaaye.

InnoDB, (MySQL, ka, default, storage, engine) TRANSACTIONS, SUPPORT, karta hai — MyISAM, (purana, engine) TRANSACTIONS, support, nahi, karta.

START TRANSACTION;

UPDATE inventory SET quantity = quantity - 1 WHERE product_id = 42;
INSERT INTO orders (product_id, quantity) VALUES (42, 1);

-- Agar, kuch, galat, hua:
-- ROLLBACK;

-- Agar, sab, theek, hai:
COMMIT;
🔄
Transaction, EK, "DRAFT, DOCUMENT" jaisa, hai — TUM, MULTIPLE, changes, KARTE, HO, LEKIN, WOH, TAB, TAK, "FINAL" nahi, HOTE, JAB, TAK, TUM, SAVE, (COMMIT) NA, karo — agar, kuch, GALAT, hua, UNDO, (ROLLBACK) kiya, ja, sakta hai.
1 / 2
⚡ Quick Recap
  • START TRANSACTION/COMMIT/ROLLBACK = transaction, control, statements
  • InnoDB, engine, transactions, support, karta, hai. MyISAM, nahi, karta
  • Application, code, mein, error, hone, PAR, rollback, karna, ZAROORI, hai
Is page mein (2 subtopics)

MySQL, DEFAULT, mein, autocommit, mode, mein, RUN, karta hai — HAR, individual, statement, apne, aap, EK, transaction, ki, tarah, COMMIT, ho, jaata, hai. Explicit, transactions, ke, liye, START TRANSACTION, se, autocommit, TEMPORARILY, disable, ho, jaata hai.

SET autocommit = 0;   -- manually, control, karna
-- ... queries ...
COMMIT;

SAVEPOINT, EK, transaction, ke, ANDAR, EK, "CHECKPOINT" banaта hai — ROLLBACK TO SAVEPOINT, se, POORE, transaction, ko, cancel, kiye, BINA, sirf, USE, POINT, tak, ke, changes, undo, kiye, ja, sakte, hain.

START TRANSACTION;
INSERT INTO orders (...) VALUES (...);
SAVEPOINT after_order;
UPDATE inventory SET quantity = quantity - 1;
-- Agar, inventory, update, fail, ho, jaaye:
ROLLBACK TO after_order;   -- order, insert, waapas, nahi, hota
COMMIT;