WSTAW MySQL… W DUPLIKOWANEJ AKTUALIZACJI KLUCZA z django 1.4 dla wstawiania zbiorczego

Mam problemy z wykrywaniem MySQL INSERT ... W DUPLICATE KEY UPDATE z django 1.4.

Tabela, którą próbuję wstawić, ma 2-kolumnowy (złożony) unikalny klucz. Rekordy, które otrzymuję, pochodzą z zewnętrznego źródła, a wartości zmieniają się w czasie, z wyjątkiem tych pól, które tworzą unikalny zestaw kluczy. Odbieram od jednego do pięciu rekordów jednocześnie i musiałbym

Obecnie używam Model.objects.bulk_create do wstawiania zbiorczego, wydajność jest naprawdę niesamowita, ponieważ generalnie generuje jedno zapytanie bez względu na to, jak duży jest zestaw rekordów. Jednakże, ponieważ moje rekordy mogą zmieniać się z czasem na końcu strony trzeciej, muszę wykonać zapytanie MySQL INSERT ... W DUPLICATE KEY UPDATE na zestawie rekordów.

Planuję napisać surowe instrukcje SQL i wykonać coś takiego:

sql = "MySQL INSERT ... ON DUPLICATE KEY UPDATE"

raw_insert(sql)

def raw_insert(sql):
    from django.db import connection, transaction
    cursor = connection.cursor()

    # Data modifying operation - commit required
    cursor.execute(sql)
    transaction.commit_unless_managed()

    return 1

Zastanawiam się, czy istnieje lepsze rozwiązanie mojego problemu. W jaki sposób miałbym oczyścić wartości pola dla wkładki surowej?

questionAnswers(2)

yourAnswerToTheQuestion