"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا تُرجع استعلامات MySQL من Python نتائج غير متناسقة؟

لماذا تُرجع استعلامات MySQL من Python نتائج غير متناسقة؟

تم النشر بتاريخ 2024-11-24
تصفح:650

Why Are My MySQL Queries from Python Returning Inconsistent Results?

استعلامات 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