У меня есть приложение, которое использует базу данных SQLite, и все работает так, как должно. Я сейчас добавляю новые функции, для которых требуется вторая база данных SQLite, но мне сложно определить, как присоединиться к таблицам из разных баз данных.
Если кто-то может помочь мне с этим, я бы очень признателен!
Изменить: См. этот вопрос для примера, который вы можете адаптировать к своему языку при прикреплении баз данных, как указано в принятом ответе.
К текущему соединению можно присоединить другой файл базы данных с помощью ключевого слова ATTACH.
attach 'database1.db' as db1;
attach 'database2.db' as db2;
Вы можете видеть все подключенные базы данных с ключевым словом
.databases
Затем вы сможете сделать следующее.
select
*
from
db1.SomeTable a
inner join
db2.SomeTable b on b.SomeColumn = a.SomeColumn;
Обратите внимание, что "[t] его имена базы данных main
и temp
зарезервированы для первичной базы данных и базы данных для хранения временных таблиц и других временных объектов данных. Оба этих имени базы данных существуют для каждого подключения к базе данных и не должны для прикрепления".
'
(одинарные кавычки) вокруг имени файла. Я нашел то же самое.
Для меня
attach database database1.db as db1;
не работает Я должен изменить его на
attach 'database1.db' as db1;
тогда вы можете увидеть все подключенные базы данных с ключевым словом
.databases
Ну, у меня нет большого опыта работы с SQLite, вам нужно иметь доступ к обеим базам данных в одном запросе.
У вас может быть что-то вроде:
select name from DB1.table1 as a join DB2.table2 as b where a.age = b.age;
В таких базах данных, как SQLServer, вы можете обращаться к другим базам данных в этом иерархическом порядке, это также должно работать для SQLite.
Я думаю, вы можете инициировать экземпляр sqlite с более чем 1 базой данных!