我已经做了一些搜索,并阅读SQLite网站上的常见问题,没有运气找到我的问题的答案。SQLite是否支持跨多个数据库的事务?
这很可能是因为我的数据库方法有缺陷,但目前我想将数据存储在多个SQLite3数据库中,这意味着单独的文件。我非常担心由于我的应用程序可能崩溃导致数据损坏,或者在我的表格中更改数据的过程中发生停电。
为了保证数据的完整性,基本上,我需要做到这一点:
开始交易 数据库#修改桌1 修改表(一个或多个)数据库#2 提交或回滚如果错误
这是由SQLite支持吗?另外,我正在使用sqlite.net,特别是基于SQLite 3.6.23.1的最新版本。
UPDATE
一个问题 - 这事的人通常会增加他们的单元测试?我总是单元测试数据库,但从来没有像这样的情况。如果是这样,你会怎么做?这几乎就像你必须将另一个参数传递给像bool test_transaction这样的方法,如果它是真的,则在数据库访问之间引发异常。然后在调用之后进行测试,以确保第一组数据没有进入其他数据库。但也许这是SQLite测试涵盖的东西,如果而不是出现在我的测试用例中。
我不认为你想要将它添加到单元测试。就好像交易运作良好,没有必要一次又一次地测试它们。只要做一些初步测试,以确保插入,更新,回滚等是适当的,你的好去处。 – 2010-04-21 18:30:37
好吧,我认为这将是最好的。完善! – Dave 2010-04-21 18:37:04