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

MySQL ট্রানজ্যাকশন ইমপ্লিমেন্ট করার পদ্ধতি

ট্রানজ্যাকশনে স্টেটমেন্টগুলো একটি ইউনিট হিসেবে এক্সিকিউট হয়। যদি কোনো অপারেশন ফেল করে, পুরো ট্রানজ্যাকশন ফেল করবে এবং রোলব্যাক হবে; অন্যথায় পরিবর্তনগুলো ডাটাবেসে সেভ হবে। MySQL ট্রানজ্যাকশন ইমপ্লিমেন্টের জন্য নিচের স্টেটমেন্টগুলো দেয়:

START TRANSACTION

ট্রানজ্যাকশন শুরু করে। MySQL কে নোটিফাই করে যে পরবর্তী স্টেটমেন্টগুলো একক ওয়ার্ক ইউনিট হিসেবে বিবেচনা করবে যতক্ষণ না ট্রানজ্যাকশন শেষ হয়।

COMMIT

ডাটাবেসে পরিবর্তনগুলো কমিট (সেভ) করে। সফল ট্রানজ্যাকশন কমপ্লিট হলে COMMIT ইস্যু করতে হয় যাতে সব সংশ্লিষ্ট টেবিলে পরিবর্তন ইফেক্টিভ হয়।

ROLLBACK

স্টেটমেন্টগুলো দ্বারা করা পরিবর্তনগুলো анডু (বাতিল) করে এবং ডাটাবেসকে ট্রানজ্যাকশন শুরু হওয়ার আগের অবস্থায় ফেরত আনে।

উদাহরণ

সফল ট্রানজ্যাকশন (COMMIT):

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO Marks Values(1, 'Aarav','Maths',50);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO Marks Values(2, 'Harshit','Maths',55);
Query OK, 1 row affected (0.00 sec)
mysql> COMMIT;
Query OK, 0 rows affected (0.06 sec)

ফলাফল: ডেটা ইনসার্ট হয়েছে।

mysql> SELECT * FROM Marks;
+------+---------+---------+-------+
| Id   | Name    | Subject | Marks |
+------+---------+---------+-------+
|    1 | Aarav   | Maths   |    50 |
|    2 | Harshit | Maths   |    55 |
+------+---------+---------+-------+

ব্যর্থ ট্রানজ্যাকশন (ROLLBACK):

mysql> START TRANSACTION;
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(1, '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 |
|    1 | Harshit | Maths   |    55 |
+------+---------+---------+-------+
  1. MySQL-এ চলমান কুয়েরি বন্ধ করার পদ্ধতি

  2. MySQL-এ Non-ASCII ক্যারেক্টার খুঁজে বের করা

  3. MySQL-এ NULL-এর পরিবর্তে 0 ফেরত দেওয়ার উপায়

  4. MySQL-এ নেস্টেড ট্রানজ্যাকশন ব্যবহার করার পদ্ধতি