Qt - Как объединить два файла базы данных SQLite с той же таблицей, используя QSqlDatabase [duplicate]

Он возвращает формат даты сервера. Вы должны определить свою собственную функцию.

  function jsonDateFormat (jsonDate) {// Изменен формат данных;  return (новая дата (parseInt (jsonDate.substr (6)))). format ("mm-dd-yyyy / h: MM tt");   

};

55
задан DavidM 17 September 2008 в 08:28
поделиться

5 ответов

Это будет сделано по запросу, возможно, несколько раз в день. То, как я увижу, работает, как в http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html , где базы данных объединены в большой БД, выполненный запрос, а затем удалена большая база данных.

15
ответ дан yurez 17 August 2018 в 10:29
поделиться

Подводя итог из сообщения Nabble в ответе DavidM:

attach 'c:\test\b.db3' as toMerge;           
BEGIN; 
insert into AuditRecords select * from toMerge.AuditRecords; 
COMMIT; 
detach toMerge;

Повторите при необходимости.

Примечание: добавлено detach toMerge; согласно комментариям майка.

54
ответ дан 3 revs, 3 users 87% 17 August 2018 в 10:29
поделиться
  • 1
    а также detach toMerge; после . – mike 13 April 2015 в 11:30
  • 2
    Я бы предположил, что это единственное объединение. Как бы вы импортировали сразу несколько таблиц, сохраняя свой внешний ключ? – ILoveCoding 29 May 2015 в 14:50
  • 3
    Я пробовал это, но столбцы из прикрепленного db, где по какой-то причине были смещены, и результат был неправильным. Поэтому мне пришлось явно указывать имена столбцов в том же порядке в операторах INSERT и SELECT. – Pimin Konstantin Kefaloukos 8 August 2016 в 02:36
  • 4
    Как справиться с ограничениями UNIQUE и обновлять строки, которые имеют одинаковые столбцы? – Mithril 14 September 2016 в 01:55
  • 5
    как вы это делаете в скрипте для динамического количества баз данных? – user5359531 25 May 2018 в 21:23

Если вам нужно выполнить операцию слияния только один раз (для создания новой более крупной базы данных), вы можете создать скрипт / программу, которая будет зацикливать все ваши базы данных sqlite и затем вставить данные в основную (большую) базу данных.

1
ответ дан Espo 17 August 2018 в 10:29
поделиться
  • 1
    у вас есть пример кода, который будет выполнять это действие? – user5359531 25 May 2018 в 21:20

Вы также можете использовать программное обеспечение diff / merge для выполнения задания. Вы можете попробовать SQLite Compare , он поддерживает сравнение и объединение больших таблиц SQLite между прочим.

Удача

Liron

4
ответ дан jobobo 17 August 2018 в 10:29
поделиться

Без обид, как один разработчик другому, я боюсь, что ваша идея кажется ужасно неэффективной. Мне кажется, что вместо объединения баз данных SQLite вы, вероятно, должны хранить несколько таблиц в одном файле базы данных.

Однако, если я ошибаюсь, я думаю, вы могли бы использовать ATTACH базы данных, а затем использовать VIEW для упрощения ваши запросы. Или сделайте таблицу в памяти и скопируйте все данные (но это даже худшая производительность, особенно если у вас большие базы данных)

-2
ответ дан Robert Gould 17 August 2018 в 10:29
поделиться
  • 1
    Объединение двух баз данных полезно, когда инженер базы данных работает с другой копией, чтобы каким-либо образом изменить структуру или контент, а тем временем старая, живая версия изменяется пользователями. – Beejor 12 September 2015 в 20:59
Другие вопросы по тегам:

Похожие вопросы: