将表的内容转储到sqlite3中以导入到新数据库中

时间:2010-08-24 17:35:41

标签: sql sqlite

是否有一种简单的方法可以将SQLite数据库表转储到文本字符串中,并将insert语句导入到不同数据库的同一个表中?

在我的具体示例中,我有一个名为 log_entries 的表,其中包含各种列。在每天结束时,我想创建一个字符串,然后可以将其转储到另一个数据库中,该数据库具有一个名为 archive 的相同结构的表。 (并清空表格 log_entries

我知道创建新数据库的attach命令。我实际上希望将它添加到现有的而不是每天创建一个新的。

谢谢!

2 个答案:

答案 0 :(得分:0)

$ sqlite3 exclusion.sqlite '.dump exclusion' 
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE exclusion (word string);
INSERT INTO "exclusion" VALUES('books');
INSERT INTO "exclusion" VALUES('rendezvousing');
INSERT INTO "exclusion" VALUES('motherlands');
INSERT INTO "exclusion" VALUES('excerpt');
...

答案 1 :(得分:0)

ATTACH "%backup_file%" AS Backup;
INSERT INTO Backup.Archive SELECT * FROM log_entries;
DELETE FROM log_entries;
DETACH Backup;

您需要做的就是将%backup_file%替换为备份数据库的路径。此方法认为您的存档表已经定义,并且您使用相同的数据库文件来累积存档。