我有以下问题:
我想逐行更新现有的 SQLite 数据库。现在发生的情况是,迭代器使用 dbdata
最后分配的值更新所有现有行。
我不想这样。
我想使用 dbdata
的第一个指定值更新 row 1
。然后迭代器应再次“向上”,获取下一个值,并且更新应继续到下一行。
显然逻辑有问题,但我无法理解它。
现在发生的情况是,行现在已更新,这让我得到了所有行的 dbdata
的最后分配值。我只想每次迭代更新一行。
我如何告诉Python总是“向下一行”?有人可以给个提示吗?我不是在这里寻找完整的解决方案。我当前的代码如下:
for row in dbconnector:
print (row)
dbdata = langid.classify("{}".format(row))
print (dbdata)
connector.execute('''update SOMEDB set test1=? , test2=?''',(dbdata[-2], dbdata[-1]))
我正在使用 SQLite 数据库和 Python 3.3。
最佳答案
将所有数据设置为最后一个 dbdata 的原因是因为您的更新不限于单行,因此在每次迭代中,所有行都设置为您刚刚处理的任何 dbdata。要限制更新,请使用 where 子句,以便唯一受影响的行是您想要的行。
关于python - 使用 Python 更新 SQLite 数据库中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25220985/