我的 .sqlite 中有两个表。这两个表的结构/内容几乎相同,我希望第一个表的一列被第二个表的一列替换。
这就是我所拥有的:
我想:
- 在文件中,
added
必须成为oldadded
(有备份) - 然后将的整列替换为
added
的Documents
整列。added
doc3sept
到目前为止,我已经设法用 选择了,
added
但我仍无法用 替换 的旧值。doc3sept
SELECT added FROM doc3sept
added
Documents
答案1
SQLite 不支持重命名列 -看这里。
首先添加oldadded
列:
ALTER TABLE Documents ADD COLUMN oldadded int
您不能在 SQLite 中使用它来更新另一个表中的列值UPDATE
。您只能使用INSERT OR REPLACE
命令。
下次运行:
REPLACE INTO Documents (id, oldadded)
SELECT id, added FROM Documents
ON CONFLICT REPLACE
然后运行:
REPLACE INTO Documents (id, added)
SELECT id, added FROM doc3sept
WHERE EXISTS (SELECT * FROM Documents WHERE doc3sept.id=Documents.id)
ON CONFLICT REPLACE
如果出现故障,请务必在执行此操作之前进行备份。