2016-02-11 47 views
0

我有兩個現有的表,workTable和table_jobs。我想更新我的工作表並使用默認值與table_jobs建立關係。這是我的嘗試:如何使用兩個現有表之間的defaule值創建關係?

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    switch (oldVersion){ 
     case 3:{ 

      int jobid = insertJobWithoutClosing(new Job("Default", Color.rgb(0, 0, 255)), db); 
      db.execSQL("ALTER TABLE " + workTable + " ADD COLUMN " + colJobID + " INTEGER DEFAULT " + jobid + " FOREIGN KEY("+colJobID+") REFERENCES "+table_jobs+"("+job_ID+")"); 

     } 

    } 

這使我有以下異常:

android.database.sqlite.SQLiteException:近 「洋」:語法錯誤(代碼1):而編譯:ALTER TABLE WorkObjects ADD COLUMN作業ID整數缺省值1外鍵(作業ID)實例工作(jobsID)

有什麼不對?

回答

1

FOREIGN KEY子句是一個表約束。 ALTER TABLE不支持表約束。

你必須使外鍵約束列約束:

ALTER TABLE WorkObjects 
ADD COLUMN JobID INTEGER DEFAULT 1 REFERENCES Jobs(jobsID); 
Error: Cannot add a REFERENCES column with non-NULL default value 

哦。你必須重新創建表格。

相關問題