Проблема с чтением таблицы базы данных между усечением / обновлением - PullRequest
0 голосов
/ 03 марта 2011

Нам нужно вызвать внешний веб-сервис, чтобы получить некоторые данные и сохранить их в таблице локально.Этот процесс необходимо повторять каждые 10 минут, поскольку данные, публикуемые внешней веб-службой, быстро меняются.В рамках этого нам необходимо очистить всю таблицу и заново вставить текущие данные, которые публикуются веб-службой.

У нас сложная ситуация: что во время усечения таблицы пользователь запрашивает таблицу и не получает результатов?Это приводит к неверному результату, отображаемому пользователю.

Может кто-нибудь дать мне совет по этому поводу?

Ответы [ 2 ]

4 голосов
/ 03 марта 2011

Используйте транзакцию вокруг обеих операций.Примерно так.

Begin transaction;
truncate table
populate the new table
end transaction

Изоляция моментального снимка гарантирует, что данные, которые вы увидите, будут согласованными.

0 голосов
/ 03 марта 2011

Если вы можете создать представление для своей таблицы, тогда вы можете загрузить данные в новую таблицу, сколько потребуется времени, чтобы заполнить ее, а затем просто изменить представление для ссылки на новую таблицу.

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