SQLite 表的基本操作

SQLite 表的基本操作

我的 .sqlite 中有两个表。这两个表的结构/内容几乎相同,我希望第一个表的一列被第二个表的一列替换。

这就是我所拥有的:

我想:

  • 在文件中,added必须成为oldadded(有备份)
  • 然后将的整列替换为addedDocuments整列。addeddoc3sept

到目前为止,我已经设法用 选择了, added但我仍无法用 替换 的旧值。doc3septSELECT added FROM doc3septaddedDocuments

答案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

如果出现故障,请务必在执行此操作之前进行备份。

相关内容