【发布时间】:2021-09-06 15:13:37
【问题描述】:
这里,在更新部分创建了一个新的副本,而不是更新现有的记录。请帮忙!
def addBooks(title, quantity):
c.execute('SELECT * FROM books')
for i, j in c.fetchall():
if i == title:
c.execute('UPDATE books SET quantity = ? WHERE title = ?', (j+quantity, title))
conn.commit()
else:
c.execute('INSERT INTO books VALUES (?, ?)', (title, quantity))
conn.commit()
【问题讨论】:
-
您的意思是将
else:附加到for而不是if? -
如果是这样,您需要在找到匹配行时从循环中
break。 -
这就是为什么你会得到重复。对于具有不同标题的每一行,您将插入一个带有您正在搜索的标题的新行。
-
如果标题已经在表格中,您是否尝试更新,如果没有,则插入?
-
如果是这样,请参阅stackoverflow.com/questions/418898/…