কম্পিউটার টিউটোরিয়াল

চলমান MySQL ট্রানজ্যাকশনের মাঝপথে DDL স্টেটমেন্ট এক্সিকিউট করলে কী হয়?


চলমান MySQL ট্রানজ্যাকশনের মাঝপথে CREATE বা DROP DATABASE, CREATE, ALTER বা DROP TABLE বা স্টোরড রুটিনের মতো যেকোনো DDL স্টেটমেন্ট এক্সিকিউট করলে বর্তমান ট্রানজ্যাকশন কমিট হয়ে শেষ হয়। বর্তমান ট্রানজ্যাকশনে করা সকল ডাটাবেস পরিবর্তন স্থায়ী হয়ে যায় এবং সেটি রোলব্যাক করা যায় না।

উদাহরণ

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)

  1. MySQL 8.0-এ সরানো ফিচারগুলো (Removed Features)

  2. MySQL 8.0-এ ডিপ্রিকেটেড (Deprecated) ফিচারগুলো

  3. MySQL 8.0-এ যোগ করা নতুন ফিচারগুলো

  4. MySQL 8.0-এ কী অপশন ও ভেরিয়েবল সরানো হয়েছে?