2011-08-09 4 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));"; 

...しかし、それは、行の最後に、エラーを返します:私は構文エラーがSQLiteのから来ていないことを推測している

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

答えて

4

01:

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

あなたのコンパイラはこのような何かを見ている:しかし、あなたのコンパイラから、あなたは+が欠落していますそれについて何をすべきか

"..." "..." 

とを知らない、エラーメッセージに二重引用符:

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

は離れて与えるです。

また、そのPRIMARY KEY構文はallowed in SQLiteです。

+0

ありがとうございます。 ^^ – android

+0

及び方法これプライベート静的最終的な文字列CREATE_VISIT_TABLE = \t "CREATE TABLE" + VISIT_TABLE + \t "(_id整数自動インクリメント、" + \tが約 "tripdayid整数TripDayを参照(_id)、" + \t」poiid整数関連POI(_id)、」+ \t "nullでないテキストをARRIVAL_TIME、" + \t "nullでないSTART_TIMEテキスト、" + \t "nullでないvisiting_durationテキスト、" + \t "nullでないleaving_timeテキスト、" + \t "PRIMARY KEY(_id、tripdayid));"; – android

+0

それは言う - > 08-09 11:28:25.380:ERROR/AndroidRuntime(14339):原因:android.database.sqlite.SQLiteException: "autoincrement"の近く:構文エラー:create table Visit(_id integer autoincrement、tripdayid integer参照番号TripDay(_id)、poiid integer関連項目POI(_id)、arrival_time text not null、start_time text not null、visit_duration text not null、leave_time text not null、PRIMARY KEY(_id、tripdayid)); – android

関連する問題