Копирование данных между таблицами в SQLite3 - PullRequest
1 голос
/ 22 декабря 2010

Допустим, я копирую данные между таблицами следующим образом:

 insert into table2 (name, address)
 select name, address
 from table1

Будет ли это выполняться в одной транзакции?

т.е.Я хотел бы, чтобы один поток копировал данные из таблицы table1 в table2, а другой поток, который выполнял бы select запросов к данным в table2, пока они копируются.Это возможно?

Я использую SQLite 3.7.

1 Ответ

1 голос
/ 22 декабря 2010

Этот запрос будет все одна транзакция. Если вам нужно вернуть скопированные строки, это будет до или после их копирования, а не пока. Это означает, что вы можете начать транзакцию вручную, сделать выбор в таблице 1, затем выполнить вставку (или другой способ) и, наконец, зафиксировать. Получение его в разных потоках означает, возможно, наличие другого набора вставок по сравнению с выбором во время каждого из них, если что-то было вставлено в промежуточный период (во многих контекстах маловероятно, но может случиться).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...