रोलबैक () विधि पायथन में विभिन्न तरीकों में से एक है जिसका उपयोग डेटाबेस लेनदेन करने के लिए किया जाता है।
यहां, हम रोलबैक () विधि के बारे में चर्चा करेंगे।
रोलबैक () विधि का उपयोग डेटाबेस में किए गए अंतिम परिवर्तन या कमिट को वापस करने के लिए किया जाता है। यदि ऐसी स्थिति उत्पन्न होती है कि उपयोगकर्ता डेटाबेस में किए गए परिवर्तनों से संतुष्ट नहीं है, या यदि लेनदेन विफल हो जाता है, तो डेटाबेस को उसकी मूल स्थिति में लाने के लिए रोलबैक () विधि संचालित की जाती है जो परिवर्तन करने से पहले थी। यह एक बहुत ही महत्वपूर्ण तरीका है क्योंकि यह किसी भी लेनदेन की विफलता के मामले में डेटाबेस की अखंडता को बनाए रखने में मदद करता है।
सिंटैक्स
db.rollback()
db डेटाबेस कनेक्शन ऑब्जेक्ट को संदर्भित करता है।
लेन-देन विफल होने की स्थिति में परिवर्तनों को वापस करने के लिए रोलबैक () के उपयोग को दिखाने के लिए नीचे एक उदाहरण दिया गया है।
पायथन में MySQL का उपयोग करके तालिका में विफल लेनदेन को रोलबैक () करने के लिए कदम
-
MySQL कनेक्टर आयात करें
-
कनेक्ट का उपयोग करके कनेक्टर के साथ कनेक्शन स्थापित करें ()
-
कर्सर () विधि का उपयोग करके कर्सर ऑब्जेक्ट बनाएं
-
अद्यतन क्वेरी निष्पादित करने और परिवर्तन करने का प्रयास करें
-
यदि लेन-देन विफल हो जाता है, तो लेन-देन को रोलबैक करें
-
कनेक्शन बंद करें
उदाहरण
नीचे दिया गया कोड छात्र तालिका में इंदर नाम के एक छात्र की आयु को अद्यतन करने का प्रयास करता है। यदि लेन-देन सफल होता है, तो अद्यतन किया जाता है अन्यथा लेन-देन वापस ले लिया जाता है और डेटाबेस को उसकी पूर्व स्थिति में बहाल कर दिया जाता है।
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!