Итак, у меня есть python script, который проходит примерно через 350 000 объектов данных, и в зависимости от некоторых тестов ему необходимо обновить строку, которая представляет каждый из этих объектов в mysql db. Я также использую pymysql, так как у меня были проблемы с ним, особенно при отправке больших запросов (выберите операторы с предложением where column IN (....)
, которое может содержать 100 000+ значений).
Поскольку каждое обновление для каждой строки может быть разным, каждый оператор обновления отличается. Например, для одной строки мы можем обновить first_name
, но для другой строки мы хотим оставить first_name
нетронутой, и мы хотим обновить last_name
.
Вот почему я не хочу использовать метод cursor.executemany()
, который принимает один общий оператор обновления, а затем он передает его значениям, как я уже упоминал, каждое обновление отличается от того, что один общий оператор обновления не действительно работать для моего дела. Я также не хочу отправлять более 350 000 инструкций обновления по отдельности. В любом случае я могу объединить все мои операторы обновления и отправить их сразу?
Я пробовал использовать их все в одном запросе и использовать метод cursor.execute()
, но он, похоже, не обновляет все строки.