Chapter 10SQL Tutorial~1 min read
Transactions & Best Practices
Transactions — All or Nothing
Transaction म्हणजे एक logical unit of work — सगळ्या steps successful व्हायला हव्यात नाहीतर सगळे rollback होते. Bank transfer सारखे — debit आणि credit दोन्ही होणे mandatory.
Marathi Analogy
Transaction म्हणजे UPI payment सारखे — तुमच्या account मधून पैसे गेले पण recipient ला मिळाले नाहीत असे होणार नाही. दोन्ही एकत्र होतात किंवा दोन्ही cancel होतात.
COMMIT आणि ROLLBACK
Transaction example
sql
-- Transaction सुरू
START TRANSACTION;
-- Bank transfer — दोन्ही operations एकत्र हव्यात
UPDATE accounts SET balance = balance - 1000 WHERE id = 1; -- Sender
UPDATE accounts SET balance = balance + 1000 WHERE id = 2; -- Receiver
-- दोन्ही successful असतील तर save करा
COMMIT;
-- -----
-- Error आला तर सगळे undo करा
START TRANSACTION;
UPDATE accounts SET balance = balance - 5000 WHERE id = 1;
-- Check करा — balance negative तर rollback
SELECT balance FROM accounts WHERE id = 1;
-- balance = -2000 (चुकीचे!) — undo करा
ROLLBACK; -- Transaction start आधीची state returnSAVEPOINT
SAVEPOINT — partial rollback
sql
START TRANSACTION;
INSERT INTO students (name, city, marks) VALUES ('User1', 'Pune', 80);
SAVEPOINT after_first; -- checkpoint save
INSERT INTO students (name, city, marks) VALUES ('User2', 'Mumbai', 75);
SAVEPOINT after_second;
INSERT INTO students (name, city, marks) VALUES ('User3', 'Nagpur', 60);
-- User3 चुकीचा आहे असे वाटले
ROLLBACK TO after_second; -- User3 undo, User1 आणि User2 ठेव
COMMIT; -- User1 आणि User2 saveSQL Best Practices
- ▸SELECT * टाळा production मध्ये — फक्त हवे ते columns लिहा
- ▸UPDATE/DELETE आधी नेहमी SELECT करून verify करा
- ▸Indexes बनवा frequently searched/joined columns वर
- ▸FOREIGN KEYs वापरा — data inconsistency टाळण्यासाठी
- ▸Sensitive data (passwords) plain text मध्ये store नका
- ▸Regular backups घ्या — DROP/TRUNCATE आधी especially
- ▸SQL injection टाळण्यासाठी Prepared Statements वापरा
✅ Key Points — लक्षात ठेवा
- ▸Transaction = all-or-nothing operations
- ▸START TRANSACTION → operations → COMMIT / ROLLBACK
- ▸SAVEPOINT — partial rollback साठी checkpoint
- ▸ACID — Atomicity, Consistency, Isolation, Durability
- ▸Production मध्ये SELECT * टाळा, indexes वापरा
0/10 chapters पूर्ण