Я хочу понять последствия использования ATTACH для баз данных с различными разрешениями на чтение и запись.sqlite3: основная база данных только для чтения и ATTACH
У меня есть сценарий, когда мне нужно получить доступ к большой базе данных (около 512 МБ), которая находится в файловой системе только для чтения. Существует также небольшая база данных для чтения и записи с той же схемой, которая находится в файловой системе чтения-записи. База данных, доступная только для чтения, предоставляет базовые данные, используемые в моем сценарии, с нечастыми обновлениями данных, хранящимися в базе данных для чтения и записи.
В настоящее время я открываю эти две базы данных в отдельных соединениях, а код, поддерживающий соединения, отвечает за представление единого представления данных своим клиентам. Например, это означает, что код должен объединять результаты запроса из баз данных только для чтения и чтения-записи и т. Д. Я понимаю, что эта настройка является неэлементарной (и, вероятно, субоптимальной), и пыталась использовать команду ATTACH для создания унифицированный вид данных в SQL, а не на C++.
Мне интересно, есть ли какие-либо особенности, связанные с прикреплением баз данных только для чтения и чтения-записи, о которых я должен знать. Я рассматриваю один из следующих сценариев ATTACH:
- Откройте базу данных только для чтения как основную и ATTACH базу данных для чтения и записи. Это мое предпочтительное решение.
- Откройте базу данных чтения и записи в качестве основной и ATTACH базу данных только для чтения.
- Третий вариант?
Несколько запросов google указывают на сообщения, предлагающие проблемы в сценарии (1). Поскольку я не нашел окончательного ответа, и потому что мое собственное тестирование с использованием sqlite 3.6.13 не выявило никаких проблем, я отправляю этот вопрос.
Благодарим за понимание.
Это не работает, если основная база данных открыта с помощью символа 'SQLITE_OPEN_READONLY'. – ybungalobill