जब वर्तमान ट्रांजैक्शन के बीच में CREATE या DROP डेटाबेस, CREATE, ALTER या DROP टेबल या स्टोर्ड रूटीन जैसे कोई DDL स्टेटमेंट निष्पादित किया जाता है तो वर्तमान MySQL ट्रांजैक्शन कमिट हो जाएगा और समाप्त हो जाएगा। वर्तमान ट्रांजैक्शन में किए गए सभी डेटाबेस परिवर्तन स्थायी हो जाएंगे और इन्हें रोल बैक नहीं किया जा सकता।
उदाहरण
mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO MARKS Values(6,'Manak','History',70); Query OK, 1 row affected (0.26 sec) mysql> Create table student(id int, Name Varchar(10),); Query OK, 0 rows affected (0.84 sec)
जैसा कि हम उपरोक्त उदाहरण में देख सकते हैं, एक DDL स्टेटमेंट ट्रांजैक्शन के बीच में निष्पादित किया गया है इसलिए यह ट्रांजैक्शन निहित रूप से समाप्त हो जाएगा। MySQL सभी परिवर्तनों को सेव कर देगा और इसे रोल बैक नहीं किया जा सकता। हम इसे निम्न रिजल्ट सेट से देख सकते हैं -
mysql> Rollback; Query OK, 0 rows affected (0.00 sec) mysql> select * from marks; +------+---------+-----------+-------+ | Id | Name | Subject | Marks | +------+---------+-----------+-------+ | 1 | Aarav | Maths | 50 | | 1 | Harshit | Maths | 55 | | 3 | Gaurav | Comp | 69 | | 4 | Rahul | History | 40 | | 5 | Yashraj | English | 48 | | 6 | Manak | History | 70 | +------+---------+---------+---------+ 6 rows in set (0.00 sec)