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

MySQL-এ নেস্টেড ট্রানজ্যাকশন (SAVEPOINT) ব্যবহার

MySQL-এ সত্যিকারের নেস্টেড ট্রানজ্যাকশন নেই, কিন্তু SAVEPOINT দিয়ে আংশিক রোলব্যাক করা যায়।

উদাহরণ

mysql> CREATE TABLE TransactionDemo (id INT AUTO_INCREMENT PRIMARY KEY);
mysql> START TRANSACTION;
mysql> INSERT INTO TransactionDemo VALUES(); -- id=1
mysql> SAVEPOINT t2;
mysql> INSERT INTO TransactionDemo VALUES(); -- id=2
mysql> SELECT * FROM TransactionDemo; -- ২টি রো

SAVEPOINT-এ রোলব্যাক

mysql> ROLLBACK TO t2;
Query OK, 0 rows affected (0.03 sec)

mysql> SELECT * FROM TransactionDemo; -- ১টি রো (id=1)
+----+
| id |
+----+
| 1  |
+----+

ব্যাখ্যা

  • START TRANSACTION: ট্রানজ্যাকশন শুরু।
  • SAVEPOINT name: একটি চেকপয়েন্ট তৈরি।
  • ROLLBACK TO name: ঐ চেকপয়েন্ট পর্যন্ত ফেরত যাওয়া (পরের ইনসার্টগুলো রোলব্যাক)।
  • RELEASE SAVEPOINT name: সেভপয়েন্ট ডিলিট।
  • COMMIT: পুরো ট্রানজ্যাকশন কমিট।

এটি নেস্টেড ট্রানজ্যাকশনের মতো আচরণ করে, কিন্তু বাইরের ট্রানজ্যাকশন রোলব্যাক করলে সবকিছু রোলব্যাক হয়।

  1. MySQL ট্রিগার কীভাবে তৈরি ও ব্যবহার করবেন?

  2. MySQL UNION অপারেটর ব্যবহার করে ডেটাসেট সংমিশ্রণ

  3. MySQL DECIMAL ডেটা টাইপ ব্যবহার করার নিয়ম

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