पायथन यील्डिंग विसंगतियों से 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 changes!
mydb.commit()
print("---")
sleep(0.1)
इस संशोधन के साथ, आपका कोड अब प्रत्येक क्वेरी लूप के दौरान डेटाबेस से नवीनतम डेटा पुनर्प्राप्त करेगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3