iOS上的SQLite-从一个文件复制到另一个文件的SQL
技术问答
183 人阅读
|
0 人回复
|
2023-09-14
|
我的iOS应用程序中有2个数据库文件:
* W$ [5 X1 C+ e$ h8 u原始数据库(只读,保存在我的应用程序的主目录中). I D' X V6 Y4 u% D8 e
用户的数据库(保存在用户的Documents文件夹中)$ J) b' x7 T0 _) V3 F1 k" Z
, ?% N( f4 i3 Z2 \$ _7 f& u
我需要运行一个SQL查询,以从原始数据库复制到用户的数据库,例如:9 y) K' q ?* x
INSERT INTO UserDatabase.MyTable. F7 q, E, k/ }1 [! N% Z8 }
SELECT * FROM OriginalDatabase.MyTable;
/ M4 K, x2 G) A' S% S是否可以通过iOS上运行的SQLite做到这一点?问题是两个数据库位于不同的文件夹中。我想避免在代码(C#)中完成这项工作,这是显而易见的方式,但速度要慢得多。' R* ~! }. t' q% |0 ]7 m6 ]7 l
我的应用程序是用C#/ MonoTouch编写的,但这可能无关紧要。1 I0 f# P# ^8 K
3 ^ t; H2 r0 }4 v& A) d
解决方案:
4 e; U" w5 X6 }7 D. O9 x# F: V( A+ q ; ?, v5 Z9 y& V4 z; O: H8 {
+ R" f$ O) D- o" m* R3 I1 I. a7 S3 c/ [$ Q; e' I
通过@Peter M的链接解决。7 d* w- A2 ^8 T0 \' [4 e
这是在iOS上执行此操作的SQL:0 ]4 G/ V" C) q3 I
ATTACH DATABASE '../YourApp.app/YourDatabase.db' AS OriginalDatabase;
! J! F( k2 N0 z& c+ V INSERT INTO Main.MyTable+ x, |3 ?. U4 Q) t
SELECT * FROM OriginalDatabase.MyTable;
8 a8 B/ `& `& S( R& T: h9 E9 k DETACH DATABASE OriginalDatabase;
4 t/ \6 M. M& q: Y$ Q请注意,使用Main,这是您连接到的数据库SqliteConnection,在我的情况下,它位于Documents文件夹中。
0 x" p4 a$ Z. O: [$ u7 w您可以针对OriginalDatabase,联接,子选择等进行所需的任何操作。 |
|
|
|
|
|