2014-10-07 2 views
0

UPD: Где требуется требование.Слияние двух базовых баз данных

Мой друг использует Mnemosine (http://mnemosyne-proj.org/), который представляет собой программу python, которая использует sqlite как db. Проблема, что мобильная версия работает только с одним файлом базы данных, а мой друг уже несколько. Поэтому он спросил меня, могу ли я объединить две базы данных.

Итак! У меня два файла sqlite db с той же схемой, но с разными данными.

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

К сожалению, внешних ключей нет, поэтому мне нужно сначала определить отношения столбцов/таблиц. Но в целом, если я решаю проблему отношений, можно ли объединить dbs?

ответ

2

Вы можете открыть базу данных, в которую хотите объединиться, а затем attach the other database.

ATTACH DATABASE "foo.database" AS foo; 

Затем вы можете получить доступ к таблицам других баз данных пути префикса с именем базы данных и точкой:

INSERT INTO bar (baz) SELECT baz FROM foo.bar; 
+0

Спасибо, но это не то, что я ищу. Я обновляю свой вопрос –

+0

Вы должны иметь возможность открыть базу данных с помощью оболочки 'sqlite3' и сделать это. –

1

Вы можете попробовать это:

sqlite3 bar.db».dump t1 "| grep -v "^ CREATE" | sqlite3 foo.db

Это будет помещать содержимое таблицы t1 из bar.db в таблицу t1 в foo.db.

+0

Благодарим за ответ. Я буду исследовать возможности сваливания –

Смежные вопросы