Я хочу избежать дублирования записей, но в некоторых случаях при обновлении записи полученные значения в точности совпадают с версией записи. Это приводит к 0 затронутым строкам, что является значением, которое я сохраняю, чтобы помочь мне определить, нужно ли мне вставлять новую транзакцию.
Я пытался использовать оператор select для поиска точной транзакции, но некоторые поля ( из многих) может быть нулевым, что не сулит ничего хорошего, когда у меня есть строковые переменные, у которых все имеют 'field1 = %s'
в своих предложениях where, когда мне нужно что-то вроде 'field1 is NULL'
вместо того, чтобы получить точный результат.
Моя последняя мысль - использовать уникальный индекс для всех столбцов, кроме одного для первичного ключа таблицы, но я не слишком знаком с использованием уникальных индексов. Должен ли я иметь возможность обновить эти записи по факту? Есть ли риски, которые следует учитывать при реализации этого решения?
Или есть ли другой способ узнать, есть ли у меня неизмененная транзакция или новая, если указаны значения для обновления?
Я использую Python с mysql .connector