Вот исходный запрос, который я использовал:
Код: Выделить всё
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';
Я попробовал как подход на основе SQL с циклом WHILE, так и подход на основе Python с использованием pymysql. Однако в подходе SQL обновляется только первый пакет строк, а последующие пакеты не запускаются. При использовании Python скрипт выполняется без ошибок, но не обновляет записи.
Я ожидаю:
- Эффективно обновляйте все 260 000 записей без тайм-аута и блокировки таблицы на слишком долгий срок.
- Убедитесь, что обновления выполняются управляемыми пакетами, чтобы процесс был надежным и масштабируемым.
- Определите, почему опробованные мной подходы не работают должным образом. ожидается.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ch-updates