it-swarm-vi.tech

Làm cách nào để hợp nhất nhiều cơ sở dữ liệu SQLite?

Nếu tôi có một số lượng lớn cơ sở dữ liệu SQLite, tất cả đều có cùng một lược đồ, cách tốt nhất để hợp nhất chúng lại với nhau để thực hiện truy vấn trên tất cả các cơ sở dữ liệu là gì? 

Tôi biết có thể sử dụng ĐÍNH KÈM để thực hiện việc này nhưng nó có giới hạn trong số 32 và 64 cơ sở dữ liệu tùy thuộc vào hệ thống bộ nhớ trên máy.

56
DavidM

Điều này sẽ được thực hiện theo yêu cầu, có thể nhiều lần một ngày. Cách tôi sẽ thấy nó hoạt động như trong http://sqlite.1065341.n5.nabble.com/Atteeming-to-merge-large-database-td39548.html nơi cơ sở dữ liệu được hợp nhất vào một DB lớn , truy vấn được thực hiện và sau đó cơ sở dữ liệu lớn bị xóa.

16
DavidM

Để tóm tắt từ Nabble post trong câu trả lời của DavidM:

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

Lặp lại khi cần thiết.

Lưu ý: đã thêm detach toMerge; theo nhận xét của mike.

59
dfrankow

Nếu bạn chỉ cần thực hiện thao tác hợp nhất này một lần (để tạo cơ sở dữ liệu mới lớn hơn), bạn có thể tạo tập lệnh/chương trình sẽ lặp tất cả các cơ sở dữ liệu sqlite của bạn và sau đó chèn dữ liệu vào cơ sở dữ liệu chính (lớn) của bạn.

1
Espo

Mặc dù là một chủ đề rất cũ, đây vẫn là một câu hỏi có liên quan trong nhu cầu lập trình ngày nay. Tôi đăng bài này ở đây vì chưa có câu trả lời nào được cung cấp ngắn gọn, dễ hiểu và dễ hiểu. Điều này là vì lợi ích của nhân viên Google cuối cùng trên trang này. GUI chúng tôi đi:

  1. Tải xuống Sqlitestudio
  2. Thêm tất cả các tệp cơ sở dữ liệu của bạn bằng cách sử dụng phím tắt Ctrl + O
  3. Bấm đúp vào mỗi tệp db đã tải bây giờ để mở/kích hoạt/mở rộng tất cả chúng
  4. Phần thú vị: chỉ cần nhấp chuột phải vào từng bảng và nhấp vào Copy, sau đó truy cập cơ sở dữ liệu đích trong danh sách các tệp cơ sở dữ liệu được tải (hoặc tạo bảng mới nếu cần) và nhấp chuột phải vào db mục tiêu trên Paste

Tôi đã rất ngạc nhiên khi nhận ra rằng một nhiệm vụ khó khăn như vậy có thể được giải quyết bằng cách sử dụng kỹ năng lập trình cổ xưa có tên: copy-and-paste :)

0
Damilola Olowookere