Я совершенно новичок в SQLite и намереваюсь использовать его в среде M2M / клиент-сервер, где база данных генерируется на сервере, отправляется клиенту в виде файла и используется на клиенте для поиска данных.
Вопрос в том, могу ли я заменить весь файл базы данных, пока клиент использует его одновременно?
Вопрос может показаться глупым, но клиент - тонкий Linuxклиента и для замены файла базы данных временный файл будет переименован в окончательное имя файла.В Linux программа, в которой по-прежнему открыто , более старая версия файла будет по-прежнему обращаться к более старым данным, поскольку старый файл сохраняется ОС до тех пор, пока все файловые дескрипторы не будут закрыты.Только новые open () получат доступ к новой версии файла.
Короче говоря:
- клиент случайным образом обращается к базе данных SQLite
- новая версиябазы данных получена с сервера и записана во временный файл
- , временный файл переименован в файл базы данных SQLite
Я знаю, что это очень специфический вопрос, но, возможно,кто-то может сказать мне, если это будет проблемой для SQLite или есть аналогичные методы для замены базы данных во время работы клиента.Я не хочу отправить кучу операторов SQL с сервера на клиент для обновления базы данных.