Я пытаюсь обновить значение x на основе указанного идентификатора строки y в python, используя sqlite3. Однако проблема у меня заключается в том, что вместо обновления значения в указанном столбце сценарий удаляет всю строку / запись из базы данных.
Вот функция
def closeIssue(self, issue_id, resolver_discord_id):
# This function closes an open issue and assigns the resolver's ID
self.c.execute("SELECT * FROM issues WHERE issue_id={}".format(issue_id))
result = self.c.fetchone()
if not result:
print("No such record")
else:
self.c.execute("UPDATE issues SET issue_status = 'CLOSED' where issue_id = ?", (issue_id))
self.conn.commit()
self.__closeDatabase(False)
Просто для дальнейшего контекста, ниже приведены некоторые другие части модуля.
Создатель базы данных (и структура):
def __buildDatabase(self):
conn = sqlite3.connect(self.issue_db)
c = conn.cursor()
c.execute("""CREATE TABLE issues (
issue_id integer,
issue_type text,
issue_type_verbose text,
author_discord integer,
issue_content text,
issue_status text,
issue_creation_timestamp text,
issue_closed_timestamp text,
resolver_staff_discord integer
)""")
conn.commit()
print("Database created")
Как выглядит типичная запись:
[{'issue_id': 1, 'issue_type': 'reports', 'issue_type_verbose': 'Report', 'author_discord': 124123123, 'issue_content': 'report one', 'issue_status': 'OPEN', 'issue_creation_timestamp': '14:29:33 - 20/02/2020', 'issue_closed_timestamp': 'NONE', 'resolver_staff_discord': 'NONE'}, {'issue_id': 2, 'issue_type': 'reports', 'issue_type_verbose': 'Report', 'author_discord': 41312, 'issue_content': 'report two', 'issue_status': 'OPEN', 'issue_creation_timestamp': '14:29:42 - 20/02/2020', 'issue_closed_timestamp': 'NONE', 'resolver_staff_discord': 'NONE'}]
Я надеюсь, что вы можете помочь мне с этим, заранее спасибо! Последние несколько часов я бился в голову по этому вопросу и, похоже, нигде не могу найти решение, куда бы я ни посмотрел.