2014-05-21 25 views
0

這是我第一次嘗試爲android和sqlite開發,所以請在這裏幫助我。sqlite爲構圖類創建語句

我有一個表:

實習: PracticalID 的StartDate 結束日期, PracType, PracTopic

,然後我有後續的組合物表:

任務: PracticalID, TaskNo, TaskTopic, 描述和, Outco MES

我在安卓/ SQLite數據庫輔助類表如下所示:

//實用

private static final String CREATE_TABLE_PRACTICAL = "CREATE TABLE " + TABLE_PRACTICAL + "(" + 
     Practical_ID + " INTEGER NOT NULL PRIMARY KEY," + Start_Date + " DATE," + End_Date + 
     " DATE," + Practical_Type + " STRING," + Practical_Topic + " STRING" + ");"; 

//任務

private static final String CREATE_TABLE_TASKS = "CREATE TABLE " + TABLE_TASKS + 
"(" + 
     Practical_ID + " INTEGER NOT NULL," + 
      Task_No + " INTEGER NOT NULL," + 
      " PRIMARY KEY" + "(" + Practical_ID + "," + Task_No + ")," + 
      Task_Topic + " STRING," + Task_Description + " STRING," + 
     Task_Outcome + ")" + "REFERENCES" + TABLE_PRACTICAL + 
      "(" Practical_ID + "));"; 

我的問題是我是否已經做到了這一點正確或者如果Table_tasks中的PracticalID應該是外鍵?不想在編碼中途中斷我設置了一個可怕的錯誤。

非常感謝!

回答

0

語法不正確;列約束必須直接位於列之後,並且表約束必須位於所有列之後。 此外,要獲得文本關聯性,數據類型必須包含CHAR或TEXT:

CREATE TABLE Tasks(
    Practical_ID INTEGER NOT NULL REFERENCES Practicals(PracticalID), 
    TaskNo INTEGER NOT NULL, 
    Task_Topic TEXT, 
    Description TEXT, 
    Outcomes, 
    PRIMARY KEY (PracticalID, TaskNo) 
); 
+0

非常感謝!稍後再試一試。關於表格關係只是一個附加的問題 - 如果我在兩個多對多的類之間有一個關聯類,它們是否會有相同的結構? 如果任務類是關聯類: 'Practical_ID INTEGER NOT NULL REFERENCES實用(PracticalID), ModuleCode INTEGER NOT NULL參考模塊(ModuleCode), PRIMARY KEY(PracticalID,ModuleCode)'? 不同的網站表示這兩個表的主鍵都是關聯類的外鍵,而另一些則表示它們都是外鍵和主鍵。 – user1397978

+0

要問一個問題,請使用「提問」按鈕。 –