Sqlite объединяет базы данных в одну, с уникальными значениями, сохраняя связь между ключом foregin [duplicate]

Этот вопрос является точной копией:

Объединение двух баз данных SQLite, каждая из которых имеет соединительные таблицы 1 ответ

Предлагается два решения (см. Ссылки внизу), но оба терпят неудачу в том, что яЯ пытаюсь сделать:

1. Заданная (идентичная) структура таблиц в базах данных, например, такая:DB1Фрукты
--------------
| id | name  |
--------------
| 1  | Apple |
| 2  | Lemon |
| 3  | Kiwi  |
| 4  | Banana|
--------------
Сок
----------------
| id | name    |
----------------
| 1  | Juice A |
| 2  | Juice B |
----------------
Рецепт (Соединительная таблица)
----------------------------
| id | juice_id | fruit_id |
----------------------------
| 1  | 1        | 1        |
| 2  | 1        | 2        |
| 3  | 2        | 1        |
| 4  | 2        | 3        |
----------------------------
DB2Фрукты
---------------
| id | name   |
---------------
| 1  | Kiwi   |
| 2  | Lemon  |
| 3  | Apple  |
| 4  | Orange |
| 5  | Lime   |
---------------
Сок
----------------
| id | name    |
----------------
| 1  | Juice C |
| 2  | Juice D |
----------------
Рецепт (Соединительная таблица)
----------------------------
| id | juice_id | fruit_id |
----------------------------
| 1  | 1        | 1        |
| 2  | 1        | 3        |
| 3  | 2        | 2        |
| 4  | 2        | 4        |
----------------------------
2. преобразовать их в это:DB3Фрукты
|----------------|
| id | name      |
|----------------|
| 1  | Kiwi      |
| 2  | Lemon     |
| 3  | Apple     |
| 4  | Orange    |
| 5  | Lime      |
| 6  | Banana    |
------------------
Сок
|--------------|
| id | name    |
|--------------|
| 1  | Juice A |
| 2  | Juice B |
| 3  | Juice C |
| 4  | Juice D |
----------------
Рецепт (Соединительная таблица)
----------------------------
| id | juice_id | fruit_id |
----------------------------
| 1  | 1        | 3        |
| 2  | 1        | 2        |
| 3  | 2        | 3        |
| 4  | 2        | 1        |
++++++++++++++++++++++++++++
| 5  | 3        | 1        |
| 6  | 3        | 3        |
| 7  | 4        | 2        |
| 8  | 4        | 4        |
----------------------------

Пожалуйста, обратите внимание, что фрукты IDs соответственно изменились, сохраняя отношения, несмотря на изменение идентификатора фруктов. ID - это первичный целочисленный автоинкрементный ключ, а Recipe содержит два внешних ключа (плюс собственный первичный целочисленный автоинкрементный ключ).

3. только два предложенных решения:

а)

$sqlite3 database1.db '.dump' >> tmp
$sqlite3 database2.db '.dump' >> tmp
$sqlite3 database3.db '.import tmp'
$ #sometimes sqlite3 database3.db < 'tmp' instead of last row

от 4и аналогичные вопросы, и:

б)

$ sqlite3 newdb
attach 'b.db' as toMerge;   
BEGIN; 
insert into newdb select * from toMerge.sometable; 
COMMIT;

Другие ответы т.е. 1, 2, 3, 4, 5, 6, 7 просто повторите тот же шаблон. Возможно 6 может быть решением, но я не могу сказать, длина этого запроса напугала меня ...

Более того, как 1 утверждает, что нет графического интерфейса сравнения слить решение. По крайней мере, помимо 2011 sqlitecompare, который, вероятно, в любом случае работает в Windows (яищу инструмент Linux) Некоторые мнения в 8 также подтвердите, что едва ли у какого-либо удобного графического интерфейса есть опция слияния.

Итак, вопрос в том.Как объединить sqlite DB в Linux, сохранив отношения, но не сохранив дублирующиеся значения из тегов / заметок? Я'Я думал, что сохранение организованной структуры - главная причина для хранения вещей в базе данных, но, похоже, я не понимаю, почему я должен хранить два одинаковых фрукта в одной корзине, если объединить из двух корзин. Моя корзина должна содержать уникальные фрукты и рецепты, я хочу съесть этот киви :)

Ответы на вопрос(1)

Ваш ответ на вопрос