2017-12-27 270 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使用後刪除它