Задать вопрос
@Bruceee

Почему падает ошибка «no such column»?

Почему закомиченная строка выполняется нормально, а активная строка выдает ошибку?
def add_row():
	conn = sqlite3.connect('database2.sqlite')
	cursor = conn.cursor()

	# cursor.execute("INSERT INTO table1 (id, text_value, num_value) VALUES (7, 'hello', 12)")
	cursor.execute("INSERT OR IGNORE INTO {table_name} (id, text_value, num_value) VALUES ({col_id}, {col_text}, {col_num})"\
					.format(table_name = 'table1', col_id = 8, col_text = 'fff', col_num = 12))

	conn.commit()
	conn.close()
add_row()


Traceback (most recent call last):
  File "/Users/macmac/python/python and DB/probe2.py", line 45, in <module>
    add_row(6, 'hello2', 12)
  File "/Users/macmac/python/python and DB/probe2.py", line 40, in add_row
    .format(table_name = 'table1', col_id = 8, col_text = 'fff', col_num = 12))
sqlite3.OperationalError: no such column: fff
  • Вопрос задан
  • 15595 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Решения вопроса 2
cursor.execute("INSERT OR IGNORE INTO t1 (col1, col2, col3) VALUES (? ? ?)", (col1, col2, col3))
Ответ написан
@alex-t
Прогр. в команде rco.ru
В строке после исполнения format'а fff получится без кавычек, во так странно и реагирует. Лучше, естетсвенно "с вопросиками", тогда в одном операторе можно сразу много строк таблицы вставлять.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽