2017-12-27 12 views
1

SQLiteにはlast_insert_rowid()という機能があります。私は同様の関数を作成したいと思いますが、インデックスの配列を取得したいと思います。 が明確であるために、私は(名前がUNIQUEである)このような人口のテーブルを持っている:JavaScriptを使用してSQLiteの挿入または更新で複数のROWIDを取得します。

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 

挿入されたROWIDは次のとおりです:1,4,5

これらのインデックスはどのように取得できますか? JSの答えは、とにかく私が理解すべきだと思う他の言語でさえいいだろう。

答えて

0

私は2つのトリガーを使用して解決しました。論理フローは次のとおりです。

  1. メインテーブルの一時テーブルtemp_tableを作成します。
  2. 挿入トリガーtr_insertを作成します。このトリガは、メインテーブルの挿入を確認し、temp_tableにも新しい行をコピーします。
  3. ポイント2と同様に動作する更新トリガーtr_updateを作成しますが、更新は行いません。
  4. すべての挿入/更新の後で、行が挿入/更新されたtemp_tableを分析する関数を呼び出します。
  5. 使用後にtemp_tableからdeleteを呼び出すことを忘れないでください。
関連する問題