Tôi muốn kết hợp cơ sở dữ liệu SQLite và một số có thể nằm trong bộ nhớ. Tôi tạo cơ sở dữ liệu trong bộ nhớ bằng cách chỉ định đường dẫn cơ sở dữ liệu là :memory:
. Theo sau this post, sử dụng tính năng attach
của SQLite có vẻ giống như một cách tiếp cận đơn giản và hiệu quả. Nhưng làm cách nào tôi có thể chỉ định cơ sở dữ liệu trong bộ nhớ của mình làm nguồn để đính kèm?Làm cách nào để đính kèm cơ sở dữ liệu SQLite trong bộ nhớ bằng Python?
Ví dụ, tôi muốn làm một cái gì đó như:
c1 = sqlite3.connect(":memory:")
c1.execute(...create table, insert a bunch, commit...)
c2 = sqlite3.connect(":memory:")
c2.execute("""
ATTACH ? AS ToMerge;
BEGIN;
INSERT INTO Records SELECT * FROM ToMerge.Records;
COMMIT;
""", (c1.get_attach_id(),))
nhưng, tất nhiên, c1.get_attach_id()
là một phương pháp tôi đã thực hiện lên cho các mục đích trình diễn, kể từ khi sử dụng chuỗi :memory:
sẽ là mơ hồ. Làm cách nào tôi có thể chỉ định cơ sở dữ liệu hiện tại c1
?
đẹp giải thích và ví dụ. –
Phần này không nói rằng DB trong bộ nhớ có thể được đặt tên và chia sẻ: https://www.sqlite.org/inmemorydb.html#sharedmemdb? – Djizeus
@Djizeus: vâng, miễn là bạn sử dụng 'file :: memory:' URI, không phải là tên ': memory:' thuần túy. Đó là câu trả lời của tôi. –