C# iOS上的SQLite-从一个文件复制到另一个文件的SQL
我的iOS应用程序中有2个数据库文件: 原始数据库只读,保存在我的应用程序的主目录中 保存在用户文档文件夹中的用户数据库 我需要运行SQL查询以将原始数据库复制到用户的数据库,如:C# iOS上的SQLite-从一个文件复制到另一个文件的SQL,c#,sql,ios,sqlite,xamarin.ios,C#,Sql,Ios,Sqlite,Xamarin.ios,我的iOS应用程序中有2个数据库文件: 原始数据库只读,保存在我的应用程序的主目录中 保存在用户文档文件夹中的用户数据库 我需要运行SQL查询以将原始数据库复制到用户的数据库,如: INSERT INTO UserDatabase.MyTable SELECT * FROM OriginalDatabase.MyTable; 这是否可以从iOS上运行的SQLite实现?问题是这两个数据库位于不同的文件夹中。我希望避免在代码C中完成这项工作,这是显而易见的方法,只是速度要慢得多 我的应用程序是用
INSERT INTO UserDatabase.MyTable
SELECT * FROM OriginalDatabase.MyTable;
这是否可以从iOS上运行的SQLite实现?问题是这两个数据库位于不同的文件夹中。我希望避免在代码C中完成这项工作,这是显而易见的方法,只是速度要慢得多
我的应用程序是用C/MonoTouch编写的,但这可能无关紧要。通过@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文件夹中
您可以对原始数据库、联接、子选择等执行任何需要的操作。是否要复制整个数据库、表或基于查询的特定记录?特定记录与上面的示例完全相同,可能有WHERE子句、联接等,但我举了一个简单的示例。谢谢,Peter,我将尝试它。不过,我想知道这是否适用于我的情况。一个数据库位于只读文件夹中,我只需要从中选择,我们将查看它是否有效。这在桌面上有效,我们将很快在该设备上进行尝试。