Я в цикле, пытаюсь проверить, есть ли конкретная запись в таблице - если это не так, я вставлю ее, если это так, я обновлю ее. Я пытался fetchone()
после c.execute(SELECT * )
, и он всегда возвращает None
, но если я пытаюсь выполнить итерацию с for result in c.execute(SELECT * )
, я получаю ожидаемые результаты.
Этот итератор работает, либо давая мне запись, которую я ожидаю найти, и которая, как я знаю, есть, либо пропускаю полностью для id_str
Я знаю, что ее нет (нет смысла использовать это в коде, так как запись уникален, поэтому цикл запускается один раз или никогда, но я запустил его для тестирования):
for result in db_api.cursor().execute("SELECT * FROM fav_history WHERE tweet_id_str=?", (id_str,)):
#do stuff
Но с этим
db_api.cursor().execute("SELECT * FROM fav_history WHERE tweet_id_str=?", (id_str,))
result = db_api.cursor().fetchone()
if result is None:
#insert
else:
#update
result
всегда None
, даже для id_str
Я знаю, что в таблице.
Что мне не хватает? Как я могу сделать эту проверку правильным и эффективным способом?