我有一个4列的SQLite3表,"date", "price", "price2"one_answers"vol"。大约有200k行数据,但是最后2列有798行不同步。即第1行中后两列的值,实际上对应于第798行中前两列的值。
我正在使用Python 2.7.
我认为必须有一种方法使用ROWID列作为唯一标识符,我可以提取前两列,然后提取第二两列,并根据"ROWID+798"或类似的东西重新连接。
这是可能的吗?如果是的话,有人知道怎么做吗?
我很好奇你的数据库怎么会像那样被破坏,并且怀疑你的评估,你似乎确切地知道什么是错的。如果发生这样的事情,似乎还有许多其他问题。
在任何情况下,如果我理解正确的话,你所描述的查询应该是这样的。
在大多数DBMS中,您可以使用一个子查询来完成此操作,但语法(col1,col2) =
在SQLite中是不允许的,因此您必须这样做。
UPDATE table1 t SET
col1 =
(SELECT col1 FROM table1
WHERE t.rowid = rowid - 798),
col2 =
(SELECT col2 FROM table1
WHERE t.rowid = rowid - 798)