SQLite连接字符串有什么用“Data Source =:memory:”?

时间:2013-04-23 18:02:22

标签: c# sql database sqlite

在我找到一种快速测试我的第一个SQLite用户定义函数而无需创建SQLite数据库的方法的时候,我发现这个简短的SQLite连接字符串帮助我快速测试了这个函数(很高兴) :

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

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

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

如果你有分享的东西(根据你的经验),请在这里分享,我将非常感激。谢谢!

2 个答案:

答案 0 :(得分:1)

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

我使用:memory:数据源作为“main”(这是数据库的默认别名),用于帮助比较数据库的临时表,然后通过提供attached两个数据库别名。这样我就可以从同一个SQLiteConnection访问数据库和临时数据库。

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

复制数据
CREATE TABLE attachedDb.TableName AS SELECT * FROM main.TableName

答案 1 :(得分:0)

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