Итак, моя проблема заключается в следующем: я не могу вставить значение в строку, которая была None
раньше. Предположим, есть 5 столбцов: a, b, c, d, e. e - это первичный ключ (установлен на autoincrement
). Сначала я вставляю в строку значения для 3 столбцов (a, b, c). autoincrement
вычисляется во время вставки, поэтому значение для e вставляется автоматически. На данный момент значение для d None
. Затем я использую строку, добавленную к вычисленному первичному ключу, для вставки в ранее не вставленный столбец строки: d. Однако эта последняя вставка не работает.
После первой вставки значение для столбца d отображается как None
в этой строке (как и должно быть). Но None
остается даже после второй вставки.
Вот фрагмент:
c.execute(f'''INSERT INTO table(a, b, c) VALUES(?,?,?)''', (val_a, val_b, val_c))
c.execute(f'''SELECT * FROM table WHERE b = ('{val_b}')''')
val_d = 'string' + str(primary_key_of_previously_inserted_row) //accessed via c.fetchall()
c.execute(f'''INSERT INTO table(d) VALUES('{val_d}')''')
conn.commit()
c.execute(f'''SELECT * FROM table WHERE b = ('{val_b}')''')
print(c.fetchall()) // this is where it prints the None which still persists after the second insert
conn.commit()
В чем здесь проблема?