START TRANSACTION के अलावा BEGIN स्टेटमेंट भी नया ट्रांजैक्शन शुरू करने के लिए उपयोग किया जाता है। यह START TRANSACTION के समान ही कार्य करता है।
उदाहरण - BEGIN के साथ ट्रांजैक्शन:
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO Marks Values(1, 'Aarav','History',40);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO Marks Values(2, 'Harshit','History',48);
Query OK, 1 row affected (0.00 sec)
mysql> ROLLBACK;
Query OK, 0 rows affected (0.04 sec)
-- परिणाम: कोई नया डेटा नहीं सेव हुआ
mysql> SELECT * FROM Marks;
+------+---------+---------+-------+
| Id | Name | Subject | Marks |
+------+---------+---------+-------+
| 1 | Aarav | Maths | 50 |
| 2 | Harshit | Maths | 55 |
+------+---------+---------+-------+
BEGIN vs START TRANSACTION:
| पहलू | BEGIN | START TRANSACTION |
|---|---|---|
| SQL मानक | नहीं (MySQL एक्सटेंशन) | हां (SQL:2003 मानक) |
| मॉडिफायर सपोर्ट | नहीं | हां (READ ONLY, READ WRITE, WITH CONSISTENT SNAPSHOT) |
| पठनीयता | संक्षिप्त | स्पष्ट, आत्म-दस्तावेजी |
| पोर्टेबिलिटी | कम | अधिक |
START TRANSACTION मॉडिफायर:
START TRANSACTION READ ONLY;
START TRANSACTION READ WRITE;
START TRANSACTION WITH CONSISTENT SNAPSHOT;
सिफारिश: नए कोड में START TRANSACTION उपयोग करें (मानक, अधिक सुविधाएं)। BEGIN लीगेसी कोड और त्वरित मैनुअल टेस्टिंग के लिए ठीक है।
नोट: BEGIN WORK भी BEGIN का पर्याय है।