استعلامات MySQL من التناقضات الناتجة عن Python
من المحتمل ألا يسترد استعلامك أحدث البيانات لأنك لا تلتزم التغييرات في قاعدة البيانات. افتراضيًا، تقوم 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