Обновите несколько строк в таблице MySQL одним вызовом - PullRequest
0 голосов
/ 31 октября 2019

У меня есть таблица в БД MySql. Мне нужно обновить определенный столбец для всех строк в таблице. Мне нужно сделать это за один вызов, не удаляя строки, а только обновляя значения столбцов.

Я пытался использовать df.to_sql (if_exists = 'replace'), но это удаляет строки и повторно вставляет их,При этом удаляются строки из другой таблицы, которые связаны внешним ключом.

merge_df = merge_df[['id', 'deal_name', 'fund', 'deal_value']]
for index, row in merge_df.iterrows():
        ma_deal_obj = MA_Deals.objects.get(id=row['id'])
        ma_deal_obj.deal_value = row['deal_value']
        ma_deal_obj.save()

merge_df имеет и другие столбцы. Мне нужно только обновить столбец deal_value для всех строк.

Одно из решений, которое у меня есть, - это перебирать строки данных и использовать Django ORM для сохранения значения, но это слишком медленно для слишком большого количества строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...