2013-08-04 2 views
0

테이블을 만들려고하고 있지만 계속해서 같은 오류가 반복되어 계속 성공하지 못했습니다.Android SQLite 테이블 만들기

에서 onCreate (에서 실행되는 쿼리)입니다 :

CREATE TABLE Posts 
(
    PostID TEXT PRIMARY KEY, 
    CourseID TEXT, 
    FOREIGN KEY (CourseID) REFERENCES Courses (CourseID) ON DELETE CASCADE, 
    PostStartDate INTEGER NOT NULL, 
    PostEndDate INTEGER NOT NULL, 
    TeacherID TEXT, 
    FOREIGN KEY (TeacherID) REFERENCES Teachers (TeacherID) ON DELETE CASCADE, 
    PostDescription TEXT, 
    PostHidden INTEGER DEFAULT(0) 
) 

내가 오류는 다음과 같습니다

08-04 14:24:24.018: I/com.re.placed.DBHandler(10656): android.database.sqlite.SQLiteException: near "PostStartDate": syntax error (code 1): , while compiling: CREATE TABLE Posts (... (removed the rest of the query) 

내가 오류 중 하나 외래 키 함께 할 수있는 뭔가가있을 것으로 의심 또는 on delete 캐스케이드. 두 refenced 열로 만들어집니다

CourseID TEXT PRIMARY KEY and TeacherID TEXT PRIMARY KEY 

그리고 외래 키는 내가 같이으로 onOpen 방법을 쓴 사용되었는지 확인 :

@Override 
public void onOpen(SQLiteDatabase db) { 
    db.execSQL("PRAGMA foreign_keys = ON;"); 
    super.onOpen(db); 
} 

어떤 도움을 또는 제안 부탁드립니다.

답변

2

CREATE 문의 끝에 외래 키 제약 조건을 넣으십시오. 적어도 sqlfiddle과 sqlite에서 작동합니다.

CREATE TABLE Posts 
(
    PostID TEXT PRIMARY KEY, 
    CourseID TEXT, 
    PostStartDate INTEGER NOT NULL, 
    PostEndDate INTEGER NOT NULL, 
    TeacherID TEXT, 
    PostDescription TEXT, 
    PostHidden INTEGER DEFAULT(0), 
    FOREIGN KEY (TeacherID) REFERENCES Teachers (TeacherID) ON DELETE CASCADE, 
    FOREIGN KEY (CourseID) REFERENCES Courses (CourseID) ON DELETE CASCADE 
); 
+0

작동합니다! 감사! :디 – Flipbed

관련 문제