Sqlite查询:如何处理合并,并在更新时处理

时间:2018-05-01 05:38:46

标签: c# sqlite

我有两个使用此代码成功合并的sqlite表;

override func viewDidLoad() {
    super.viewDidLoad()
    // set delegate
    Appodeal.setRewardedVideoDelegate(self)
  }

Senario1

结果:

Result

是的它合并但是,如果我只是像这样更新table2上的一些项目,我不知道如何处理;

senario2

正如您可以看到table2中的更新项目。

我想要一些可以处理合并的东西,并且当我更新table2上的某些项目时它只会更新table1而不是添加它们。

1 个答案:

答案 0 :(得分:1)

我相信以下内容可以满足您的需求: -

INSERT OR REPLACE INTO table1 SELECT * FROM table2 WHERE id||name NOT IN (SELECT id||name FROM table1);

这基本上添加了OR REPLACE,它将替换行而不是在UNIQUE或PRIMARY KEY约束冲突上插入行。

WHERE子句略微改为测试id和名称,而不仅仅是名称。

名称基于示例,即table1和table2。

这确实假设ID列是rowid的别名,并且id的管理使它们保持同步。