2011-08-09 34 views
0

这是我的代码:带多主键的sqlite命令?

private static final String CREATE_VISIT_TABLE = 
    " create table " + VISIT_TABLE + 
    " (tripdayid integer REFERENCES TripDay(_id)," + 
    " poiid integer REFERENCES POI(_id)," + 
    " arrival_time text not null," + 
    " start_time text not null," + 
    " visiting_duration text not null," + 
    " leaving_time text not null," 
    " PRIMARY KEY (tripdayid, poiid));"; 

...但它返回一个错误,在一行的末尾:

"Syntax error on token "" PRIMARY KEY (tripdayid, poiid));"", delete this token"

回答

4

我猜,语法错误不是从未来的SQLite但是从你的编译器,你错过了一个+

" leaving_time text not null," // Missing + right here. 
" PRIMARY KEY (tripdayid, poiid));"; 

你的编译器看到的是这样的:

"..." "..." 

,不知道该怎么办了,错误消息的双引号:

"Syntax error on token "" PRIMARY KEY (tripdayid, poiid));"" 
         ^        ^
         |------ these ones ---------------| 

是白送。

另外,该主键语法是allowed in SQLite

+0

非常感谢。 ^^ – android

+0

和这个怎么样一个私有静态最后弦乐CREATE_VISIT_TABLE = \t “创建表” + VISIT_TABLE + \t “(_id整数自动增量” + \t “tripdayid整数参考文献TripDay(_id),” + \t“poiid整数参考POI(_id),” + \t “arrival_time的文本不为空,” + \t “START_TIME文本不为空,” + \t “visiting_duration文本不为空,” + \t “leaving_time文本不为空,” + \t“PRIMARY KEY(_id,tripdayid));”; – android

+0

它说 - > 08-09 11:28:25.380:错误/ AndroidRuntime(14339):引起:android.database.sqlite.SQLiteException:接近“autoincrement”:语法错误:创建表访问(_id整数自动增量,tripdayid整数REFERENCES TripDay(_id),poiid整数REFERENCES POI(_id),arrival_time文本不为空,start_time文本不为空,visit_duration文本不为null,leave_time文本不为null,PRIMARY KEY(_id,tripdayid)); – android