Итак, у меня есть SQL запрос, запущенный в python, который добавит данные в базу данных, но мне интересно, есть ли дублирующий ключ, который просто обновляет пару полей. Данные, которые я использую, составляют около 30 столбцов, и мне интересно, есть ли способ сделать это.
data = [3, "hello", "this", "is", "random", "data",.......,44] #this being 30 items long
car_placeholder = ",".join(['%s'] * len(data))
qry = f"INSERT INTO car_sales_example VALUES ({car_placeholder}) ON DUPLICATE KEY UPDATE
Price = {data[15]}, IdNum = {data[29]}"
cursor.execute(qry, data)
conn.commit()
Я хочу добавить запись, если ключ не существует, но если он обновляет некоторые из столбцов в записи, которые являются Price и IdNum, которые находятся в нечетных местах в наборе данных. Это вообще возможно?
Если это не так, есть ли способ обновить каждый столбец в базе данных без явного указания. Например
qry = f"INSERT INTO car_sales_example VALUES ({car_placeholder}) ON DUPLICATE KEY UPDATE
car_sales_example VALUES ({car_placeholder})"
вместо перехода столбец за столбцом ->
ON DUPLICATE KEY UPDATE Id = %s, Name = %s, Number = %s, etc... #for 30 columns