使用 JavaScript 在 SQLite 插入或更新中检索多个 rowid
Retrieve multiple rowids in SQLite insert or update, using JavaScript
我知道 SQLite 有 last_insert_rowid()
函数。我想创建一个类似的函数,但我想检索一组索引,每个索引都来自对我的数据库的插入或更新。
更清楚地说,我有一个这样的填充 table(名称是唯一的):
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 inserted/updated 是:1,4,5
如何检索这些索引? JS回答会很好,无论如何即使是其他语言我想我也应该理解。
我用两个触发器解决了。逻辑流程是:
- 创建临时 table、temp_table、主 table 的克隆;
- 创建一个插入触发器,tr_insert。此触发器验证主 table 中的插入并也在 temp_table;
中复制新行
- 创建一个更新触发器,tr_update,其行为类似于第 2 点中的触发器,但用于更新;
- 在所有插入/更新之后,调用一个函数来分析 temp_table 其中插入/更新的行。
- 记得在 temp_table 使用后调用 delete
我知道 SQLite 有 last_insert_rowid()
函数。我想创建一个类似的函数,但我想检索一组索引,每个索引都来自对我的数据库的插入或更新。
更清楚地说,我有一个这样的填充 table(名称是唯一的):
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 inserted/updated 是:1,4,5
如何检索这些索引? JS回答会很好,无论如何即使是其他语言我想我也应该理解。
我用两个触发器解决了。逻辑流程是:
- 创建临时 table、temp_table、主 table 的克隆;
- 创建一个插入触发器,tr_insert。此触发器验证主 table 中的插入并也在 temp_table; 中复制新行
- 创建一个更新触发器,tr_update,其行为类似于第 2 点中的触发器,但用于更新;
- 在所有插入/更新之后,调用一个函数来分析 temp_table 其中插入/更新的行。
- 记得在 temp_table 使用后调用 delete