যেমন আমরা জানি যে একটি লেনদেনে, স্টেটমেন্টগুলি একটি ইউনিট হিসাবে কার্যকর করা হয়৷ যদি লেনদেনের মধ্যে কোনো অপারেশন ব্যর্থ হয়, তাহলে পুরো লেনদেন ব্যর্থ হবে এবং তা ফিরিয়ে আনা উচিত; অন্যথায়, বিবৃতি দ্বারা করা কোনো পরিবর্তন ডাটাবেসে সংরক্ষিত হয়। একটি লেনদেন বাস্তবায়নের জন্য MySQL নিম্নলিখিত বিবৃতি প্রদান করে -
লেনদেন শুরু করুন
৷নাম থেকেই বোঝা যাচ্ছে, এই বিবৃতি দিয়ে লেনদেন শুরু হয়৷ মূলত, এটি মাইএসকিউএলকে সূচিত করে যে লেনদেন শেষ না হওয়া পর্যন্ত অনুসরণ করা বিবৃতিগুলিকে একক কাজের ইউনিট হিসাবে বিবেচনা করা উচিত।
কমিট
কমিট স্টেটমেন্ট ডাটাবেসে পরিবর্তন করে। অন্য কথায়, যখন একটি সফল লেনদেন সম্পন্ন হয়, তখন COMMIT কমান্ড জারি করা উচিত যাতে সমস্ত জড়িত টেবিলের পরিবর্তনগুলি কার্যকর হয়৷
রোলব্যাক
৷ROLLBACK কমান্ড বিবৃতি দ্বারা করা যেকোনো পরিবর্তনকে পূর্বাবস্থায় ফিরিয়ে আনে এবং ডাটাবেসকে পূর্ববর্তী অবস্থায় ফিরিয়ে দেয় অর্থাৎ লেনদেন শুরু হওয়ার সময় এটি ছিল।
উদাহরণ
একটি MySQL লেনদেনের বাস্তবায়ন প্রদর্শন করার জন্য নিম্নলিখিত একটি উদাহরণ -
mysql> লেনদেন শুরু করুন;কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.00 সেকেন্ড)mysql> মার্কস মান (1, 'Aarav', 'Maths',50); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.00 সেকেন্ড) mysql> মার্কস মান ঢোকানএই উদাহরণে, লেনদেন শুরু করা হয় START TRANSACTION বিবৃতি দ্বারা। দুটি INSERT বিবৃতি তারপর একটি COMMIT বিবৃতি দ্বারা অনুসরণ করা হয়. COMMIT স্টেটমেন্ট ডাটাবেসের পরিবর্তনগুলি সংরক্ষণ করবে যা নিম্নলিখিত ফলাফল সেট থেকে পর্যবেক্ষণ করা যেতে পারে যা দেখায় যে মানগুলি টেবিলে সন্নিবেশ করা হয়েছে −
mysql> চিহ্ন থেকে * নির্বাচন করুন; +------+---------+---------+-------+| আইডি | নাম | বিষয় | মার্কস |+------+---------+---------+-------+| 1 | আরাভ | গণিত | 50 || 2 | হর্ষিত | গণিত | 55 |+------+---------+---------+-------+2 সারি সেটে (0.00 সেকেন্ড)mysql> লেনদেন শুরু করুন;কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.00 সেকেন্ড) mysql> মার্কস মান (1, 'Aarav', 'History',40) INSERT INTO INTO INTO INTO মার্কস ভ্যালুস 'হর্ষিত','ইতিহাস',48);কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.00 সেকেন্ড)mysql> রোলব্যাক;কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.04 সেকেন্ড)এই উদাহরণে, লেনদেন শুরু হয় ট্রানজ্যাকশন বিবৃতি দিয়ে। দুটি INSERT বিবৃতি তারপর একটি ROLLBACK বিবৃতি দ্বারা অনুসরণ করা হয়। ROLLBACK স্টেটমেন্ট ডাটাবেসে করা পরিবর্তনগুলিকে পূর্বাবস্থায় ফিরিয়ে আনবে যা নিম্নলিখিত ফলাফল সেট থেকে লক্ষ্য করা যায় যা দেখায় যে টেবিলে কোনো নতুন মান সন্নিবেশ করা হয়নি −
mysql> মার্কস থেকে * নির্বাচন করুন;+------+---------+---------+------+| আইডি | নাম | বিষয় | মার্কস |+------+---------+---------+-------+| 1 | আরাভ | গণিত | 50 || 1 | হর্ষিত | গণিত | 55 |+------+---------+---------+-------+2 সারি সেটে (0.00 সেকেন্ড)