2017-12-27 260 views
1

我知道SQLite有last_insert_rowid()函数。我想创建一个类似的函数,但我想检索一个索引数组,每个索引都来自插入或更新到我的数据库。 更清晰,我有一个填充的表像这样的(重复名称):在SQLite中检索多个rowid插入或更新,使用JavaScript

rowid name age 

1  'John' 18 

2  'Anne' 25 

3  'Jack' 32 

然后,我必须插入或更新几行: ('John',19), ('Michael',33), ('Jenny',12)

结果将是:

rowid name  age 

1  'John' 19 

2  'Anne' 25 

3  'Jack' 32 

4  'Michael' 33 

5  'Jenny' 12 

插入/更新rowids是:1,4,5

如何检索这些索引? JS答案会很好,无论如何,即使在其他语言,我想我应该明白。

回答

0

我解决了使用两个触发器。逻辑流程如下:

  1. 创建临时表temp_table克隆主表;
  2. 创建一个插入触发器tr_insert。该触发器验证主表中的插入,并将新行也复制到temp_table中;
  3. 创建一个更新触发器tr_update,其行为与点2中的触发器类似,但是用于更新;
  4. 全部插入/更新后,调用分析temp_table的函数,其中插入/更新了行。
  5. 记得在temp_table使用后删除它