Получить несколько строк в SQLite для вставки или обновления, используя JavaScript

Я знаю SQLite есть last_insert_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

И добавлены / обновлены rowids: 1,4,5

Как я могу получить эти индексы? Ответ JS был бы хорош, во всяком случае, даже на других языках, я полагаю, я должен понимать.

1 ответ

Решение

Я решил использовать два триггера. Логический поток:

  1. Создать временную таблицу, temp_table, клон основной таблицы;
  2. Создайте триггер вставки, tr_insert. Этот триггер проверяет вставку в основную таблицу и копирует новую строку также в temp_table;
  3. Создайте триггер обновления tr_update, который действует так же, как в пункте 2, но для обновлений;
  4. После всех вставок / обновлений вызовите функцию, которая анализирует temp_table, в который вставляются / обновляются строки.
  5. Не забудьте вызвать delete из temp_table после его использования
Другие вопросы по тегам