पायथन क्वेरीज़ का उपयोग करके MySQL से डायनामिक डेटा पुनर्प्राप्त करना
जब समय-समय पर पायथन से तेजी से बदलते MySQL डेटाबेस को क्वेरी करते हैं, तो आप लूप-आधारित की उम्मीद कर सकते हैं नवीनतम डेटा लगातार प्राप्त करने के लिए दृष्टिकोण। हालाँकि, आपको ऐसी स्थिति का सामना करना पड़ सकता है जहां एक ही डेटा बार-बार लौटाया जाता है।
यह समस्या MySQL के डिफ़ॉल्ट आइसोलेशन स्तर, रिपीटेबल रीड से उत्पन्न होती है। इस स्तर के साथ, लेन-देन के भीतर पढ़ने वाले डेटा के स्नैपशॉट का उपयोग करते हैं क्योंकि यह लेन-देन की शुरुआत में मौजूद था। उसी लेनदेन के भीतर आने वाली क्वेरीज़ इसे अपडेट करने के बजाय इस स्नैपशॉट से पढ़ी जाएंगी।
इसे हल करने के लिए, आपको प्रत्येक क्वेरी के बाद कनेक्शन करना होगा, यह सुनिश्चित करते हुए कि अगला लेनदेन नवीनतम डेटा पुनर्प्राप्त करेगा। यहां बताया गया है कि आप अपने पायथन कोड को कैसे संशोधित कर सकते हैं:
# Main loop
while True:
# SQL query
sql = "SELECT * FROM table"
# Read the database, store as a dictionary
mycursor = mydb.cursor(dictionary=True)
mycursor.execute(sql)
# Store data in rows
myresult = mycursor.fetchall()
# Transfer data into list
for row in myresult:
myList[int(row["rowID"])] = (row["a"], row["b"], row["c"])
print(myList[int(row["rowID"])])
# Commit !
mydb.commit()
print("---")
sleep (0.1)
प्रत्येक क्वेरी के बाद mydb.commit() जोड़कर, आप MySQL को लेनदेन करने और स्नैपशॉट को अपडेट करने के लिए मजबूर करते हैं। यह बाद के प्रश्नों को नवीनतम डेटा तक पहुंचने की अनुमति देता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3