2

无意中,当我在寻找一种方法来快速测试我的第一个 SQLite 用户定义函数而无需创建 SQLite 数据库时,我发现了这个简短的 SQLite 连接字符串,它帮助我快速测试了该函数(对此感到满意):

SQLiteConnection con = new SQLiteConnection("Data Source = :memory:");

至少这是出于测试目的(我猜是这样)。我想知道我们还能用它做什么?我可以即时创建一些数据库并在某处保存为文件吗?

这就是所谓的内存数据库,它通常用于易失性存储设备,在设备关闭后无需保存数据,适合通过网络进行实时处理。这就是我对它的一些用法的全部了解,但我真的没有经历过任何与之相关的项目。

如果您有什么要分享的(以您的经验),请在这里分享,我将不胜感激。谢谢!

4

2 回答 2

1

对于一个项目,我必须比较两个 SQLite 数据库。

我将:memory:数据源用作帮助比较数据库的临时表的“主”(这是数据库的默认别名),然后通过给它们一个别名来附加两个数据库。这样我就可以从同一个数据库和一个临时数据库访问SQLiteConnection

我不认为 SQLite 提供了将内存数据库保存为文件的任何方法,但是如果您愿意,可以使用相同的方法:附加空数据库并使用复制数据

CREATE TABLE attachedDb.TableName AS SELECT * FROM main.TableName
于 2013-10-24T10:30:13.143 回答
0

我发现内存数据库对于运行自动测试非常有用。它们比基于文件的数据库运行得更快,在测试结束时会自动被丢弃,并且不会弄乱我的硬盘。

于 2018-02-09T15:35:18.263 回答