2012-09-23 289 views
0

在我的应用程序中,我使用ATTACH DATABASE来“合并”2个数据库并对它们进行处理。它完美的作品。对2个数据库文件上的表的SELECT/UPDATE/INSERT没有任何问题。SQLite +附加数据库+创建表

我的问题:如何指定当我想要做一个CREATE TABLE时使用哪个数据库文件?

CREATE TABLE caps (
    id VARCHAR PRIMARY KEY NOT NULL, 
    name_en VARCHAR, 
    status INTEGER DEFAULT (1)) 

编辑: 我重视我的第二个数据库这样的:

self.database = [FMDatabase databaseWithPath:DATABASE_READ_SANDBOX_PATH]; 
[self.database executeUpdate:[NSString 
    stringWithFormat:@"ATTACH DATABASE '%@' AS db2", 
    DATABASE_USER_SANDBOX_PATH]]; 

所以第二个数据库都有一个名字(db2),不过第一个?我想在第一个表中添加表格。

+0

什么类型的应用程序? Android的?? –

+0

这是一个iOS应用程序;)我在我的初始文章中添加了附加行。 –

回答

2

documentation表示:在一个附加的数据库

表可以被称为使用语法数据库name.table名
数据库名称'main'和'temp'是指主数据库和用于临时表的数据库。

因此:

CREATE TABLE main.caps(...) 
CREATE TABLE db2.caps(...) 
+0

是的,但我需要在db1中创建表。但我从来没有在我的代码中命名第一个数据库“db1”。怎么做 ?如果我们不指定它,那么使用的默认数据库是db1吗? –

+0

@muqaddar:是; 'main'是您打开主连接的数据库的_in SQL_名称。 –

+0

谢谢你Donal! –