sqlite3 объединяет несколько баз данных в 1 - PullRequest
0 голосов
/ 01 марта 2019

Я создал 1000 .db файлов, которые имеют одинаковые таблицы, но разные записи.Я пытаюсь взять все записи в них и вставить их в одну базу данных:

for i in {0..1099}; do
sqlite3 .dump $i.db | sqlite3 results.db
done;

Однако возникает следующая ошибка:

 Error: unrecognized token: "0.db"
 Error: unrecognized token: "1.db"
 etc.

1 Ответ

0 голосов
/ 01 марта 2019

У вас есть 2 проблемы

  1. команда должна быть вторым аргументом, после db
  2. она потерпит неудачу для 2-го файла, поскольку таблица создается 1-м

затем вы можете сделать это

for d in {0..1000}.db
do
    sqlite3 "$d" .dump
done | sed 's@\(CREATE TABLE\)\(.*\);@\1 IF NOT EXISTS \2;@' | sqlite3 results.db

, которая создает таблицу, если она не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...