Hier ist die ursprüngliche Abfrage, die ich verwendet habe:
Code: Select all
UPDATE student_records sr
JOIN enrollment_details ed ON ed.enrollment_id = sr.student_id
SET
sr.admission_date = ed.enrollment_date,
sr.admitted_by = ed.enrolled_by
WHERE
ed.enrollment_type = 'new_admission';
Ich habe sowohl einen SQL-basierten Ansatz mit einer WHILE-Schleife als auch einen Python-basierten Ansatz mit pymysql versucht. Beim SQL-Ansatz wird jedoch nur der erste Stapel von Zeilen aktualisiert und nachfolgende Stapel werden nicht ausgeführt. Beim Python-Ansatz wird das Skript ohne Fehler ausgeführt, aktualisiert jedoch keine Datensätze.
Ich erwarte Folgendes:
- Aktualisieren Sie alle 260.000 Datensätze effizient, ohne dass es zu Zeitüberschreitungen kommt oder die Tabelle zu lange gesperrt wird.
- Stellen Sie sicher, dass Aktualisierungen in überschaubaren Stapeln erfolgen, damit der Prozess robust und skalierbar ist.
- Identifizieren Sie, warum die von mir ausprobierten Ansätze nicht funktionieren erwartet.