রোলব্যাক() পদ্ধতিটি পাইথনের বিভিন্ন পদ্ধতির মধ্যে একটি যা ডাটাবেস লেনদেন করতে ব্যবহৃত হয়।
এখানে, আমরা রোলব্যাক() পদ্ধতি সম্পর্কে আলোচনা করব।
রোলব্যাক() পদ্ধতিটি ডাটাবেসে করা শেষ পরিবর্তন বা প্রতিশ্রুতি ফিরিয়ে আনতে ব্যবহৃত হয়। যদি এমন একটি শর্ত দেখা দেয় যে ব্যবহারকারী ডাটাবেসে করা পরিবর্তনগুলির সাথে সন্তুষ্ট না হন, বা যদি লেনদেন ব্যর্থ হয়, তাহলে rollback() পদ্ধতিটি ডাটাবেসটিকে তার আসল অবস্থায় আনার জন্য পরিচালিত হয় যা পরিবর্তনগুলি করার আগে ছিল। এটি একটি অত্যন্ত গুরুত্বপূর্ণ পদ্ধতি কারণ এটি কোনো লেনদেনের ব্যর্থতার ক্ষেত্রে ডাটাবেসের অখণ্ডতা বজায় রাখতে সাহায্য করে৷
সিনট্যাক্স
db.rollback()
db ডাটাবেস সংযোগ বস্তুকে বোঝায়।
লেনদেন ব্যর্থতার ক্ষেত্রে পরিবর্তনগুলি ফিরিয়ে আনতে রোলব্যাক() ব্যবহার দেখানোর জন্য নীচে একটি উদাহরণ দেওয়া হল৷
পাইথনে MySQL ব্যবহার করে একটি টেবিলে ব্যর্থ লেনদেন রোলব্যাক() করার পদক্ষেপ
-
MySQL সংযোগকারী আমদানি করুন
-
connect()
ব্যবহার করে সংযোগকারীর সাথে সংযোগ স্থাপন করুন -
কার্সার() পদ্ধতি
ব্যবহার করে কার্সার অবজেক্ট তৈরি করুন -
আপডেট কোয়েরি চালানোর চেষ্টা করুন এবং পরিবর্তনগুলি কমিট করুন
-
যদি লেনদেন ব্যর্থ হয়, তাহলে লেনদেনটি রোলব্যাক করুন
-
সংযোগ বন্ধ করুন
উদাহরণ
নিচের কোডটি স্টুডেন্ট টেবিলে ইন্ডার নামের একজন ছাত্রের বয়স আপডেট করার চেষ্টা করে। লেনদেন সফল হলে, আপডেট করা হয় অন্যথায় লেনদেনটি রোলব্যাক করা হয় এবং ডাটাবেসটি তার আগের অবস্থায় পুনরুদ্ধার করা হয়।
import mysql.connector
from mysql.connector import Error
from mysql.connector import errorcode
try:
db = mysql.connector.connect(
host ='localhost',
database ='database_name',
user ='user_name'
password='your_password',
)
cs = db.cursor()
query ="UPDATE STUDENT SET AGE = 23 WHERE Name ='Inder'"
cs.execute(query)
# commit changes to the database
db.commit()
# update successful message
print("Database Updated !")
except mysql.connector.Error as error :
# update failed message as an error
print("Database Update Failed !: {}".format(error))
# reverting changes because of exception
db.rollback()
# Disconnecting from the database
db.close() আউটপুট
যদি লেনদেন সফল হয়
Database Updated!
লেনদেন ব্যর্থ হলে
Database Update Failed!