كيف يمكنني دمج العديد من قواعد بيانات SQLite؟

StackOverflow https://stackoverflow.com/questions/80801

  •  09-06-2019
  •  | 
  •  

سؤال

إذا كان لدي عدد كبير من قواعد بيانات SQLite، جميعها بنفس المخطط، فما هي أفضل طريقة لدمجها معًا لإجراء استعلام على جميع قواعد البيانات؟

وأنا أعلم أنه من الممكن استخدامها يربط للقيام بذلك ولكن لديها حد من 32 و64 قاعدة بيانات حسب نظام الذاكرة الموجود بالجهاز.

هل كانت مفيدة؟

المحلول 2

وسيتم ذلك عند الطلب، ويمكن أن يتم ذلك عدة مرات في اليوم.الطريقة التي أراها تعمل هي كما في http://sqlite.1065341.n5.nabble.com/Attempting-to-merge-large-databases-td39548.html حيث يتم دمج قواعد البيانات في قاعدة بيانات كبيرة، ويتم تنفيذ الاستعلام ثم يتم حذف قاعدة البيانات الكبيرة.

نصائح أخرى

لتلخيص من مشاركة نابل في إجابة DavidM:

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

كرر حسب الحاجة.

ملحوظة:وأضاف detach toMerge; حسب تعليق مايك.

إذا كنت بحاجة إلى إجراء عملية الدمج هذه مرة واحدة فقط (لإنشاء قاعدة بيانات جديدة أكبر)، فيمكنك إنشاء برنامج نصي/برنامج يقوم بتكرار جميع قواعد بيانات sqlite الخاصة بك ثم إدراج البيانات في قاعدة البيانات الرئيسية (الكبيرة).

على الرغم من أن هذا الموضوع قديم جدًا، إلا أنه لا يزال سؤالًا ذا صلة باحتياجات البرمجة اليوم.أقوم بنشر هذا هنا لأنه لم تكن أي من الإجابات المقدمة حتى الآن موجزة وسهلة ومباشرة.وهذا من أجل موظفي Google الذين ينتهي بهم الأمر في هذه الصفحة.واجهة المستخدم الرسومية نذهب:

  1. تحميل com.Sqlitestudio
  2. قم بإضافة كافة ملفات قاعدة البيانات الخاصة بك باستخدام Ctrl + O اختصار لوحة المفاتيح
  3. انقر نقرًا مزدوجًا فوق كل ملف db تم تحميله الآن لفتح/تنشيط/توسيعها جميعًا
  4. الجزء الممتع:ما عليك سوى النقر بزر الماوس الأيمن على كل جدول ثم النقر عليه Copy, ، ثم انتقل إلى قاعدة البيانات الهدف في قائمة ملفات قاعدة البيانات المحملة (أو قم بإنشاء ملف جديد إذا لزم الأمر) وانقر بزر الماوس الأيمن على قاعدة البيانات الهدف وانقر على Paste

لقد انبهرت عندما أدركت أن مثل هذه المهمة الشاقة يمكن حلها باستخدام مهارة البرمجة القديمة التي تسمى:نسخ و لصق :)

بدون أي إساءة، مثلما يفعل مطور مع آخر، أخشى أن تبدو فكرتك غير فعالة إلى حد كبير.يبدو لي أنه بدلاً من توحيد قواعد بيانات SQLite، ربما ينبغي عليك تخزين عدة جداول داخل ملف قاعدة البيانات نفسه.

ومع ذلك، إذا كنت مخطئًا، أعتقد أنه يمكنك إرفاق قواعد البيانات ثم استخدام طريقة العرض لتبسيط استفساراتك.أو أنشئ جدولًا في الذاكرة وانسخ جميع البيانات (لكن هذا أداء أسوأ، خاصة إذا كان لديك قواعد بيانات كبيرة)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top