【问题标题】:SQLite on iOS - SQL to copy from one file to anotheriOS 上的 SQLite - SQL 从一个文件复制到另一个文件
【发布时间】:2012-05-08 05:12:47
【问题描述】:

我的 iOS 应用中有 2 个数据库文件:

  • 一个原始数据库(只读,保存在我应用的主目录中)
  • 用户的数据库(保存在用户的Documents文件夹中)

我需要运行 SQL 查询以从原始数据库复制到用户的数据库,例如:

INSERT INTO UserDatabase.MyTable
SELECT * FROM OriginalDatabase.MyTable;

这可以通过在 iOS 上运行的 SQLite 实现吗?问题是两个数据库位于不同的文件夹中。我想避免在代码 (C#) 中完成这项工作,这是显而易见的方式,只是速度要慢得多。

我的应用程序是用 C#/MonoTouch 编写的,但这可能无关紧要。

【问题讨论】:

  • 是否要根据查询复制整个数据库、表或特定记录?
  • 特定记录和我上面的例子一模一样,可能有WHERE子句、连接等,但我举了一个简单的例子。
  • 谢谢,彼得,我会试试的。但是,我想知道这是否适用于我的情况。一个数据库在只读文件夹中(我只需要从中SELECT),我们将看看它是否有效。
  • 这适用于桌面(我们即将在设备上试用)。

标签: c# sql ios sqlite xamarin.ios


【解决方案1】:

通过@Peter M 的链接解决。

这是在 iOS 上执行此操作的 SQL:

    ATTACH DATABASE '../YourApp.app/YourDatabase.db' AS OriginalDatabase;

    INSERT INTO Main.MyTable
    SELECT * FROM OriginalDatabase.MyTable;

    DETACH DATABASE OriginalDatabase;

注意Main 的使用,这是您使用SqliteConnection 连接的数据库,在我的例子中它位于Documents 文件夹中。

您可以针对OriginalDatabase、连接、子选择等执行任何您需要的操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多