Я пытаюсь использовать sqlite3 с python3 для создания элементарной системы баз данных. Я создал базу данных и теперь хочу узнать, как ее обновить. Следующая функция работает и выдает желаемый результат:
def update_db(table_name,column_name):
con = db_connect()
cur = con.cursor()
id_column ='first_name'
update_sql = """ UPDATE {} SET {} = 'hi' where {} = "ID_0-1" """.format(table_name, column_name, id_column)
cur.execute(update_sql)
con.commit()
Однако, если я пытаюсь обобщить оператор update_ sql следующим образом:
def update_db(table_name,column_name):
con = db_connect()
cur = con.cursor()
id_column ='first_name'
value = 'hi'
id_value = "ID_0-1"
update_sql = """ UPDATE {} SET {} = {} where {} = {} """.format(table_name, column_name, value, id_column, id_value)
cur.execute(update_sql)
con.commit()
, я получаю следующую трассировку:
Traceback (most recent call last):
File "database_intialisation.py", line 97, in <module>
fill_column(table_name, column_name)
File "database_intialisation.py", line 77, in fill_column
cur.execute(update_sql)
sqlite3.OperationalError: no such column: hi
Я также пробовал% s метод подстановки строк, и он дает аналогичные результаты.