2012-03-31 11 views
0

こんにちは私はsqldatabaseを作成しようとしていますが、私は外部キーをoncreateメソッドで定義しようとしています。外部キーの定義

ルートテーブル:ID、名前

停止テーブル:ID、名前

タイムテーブル:バスへのid、外部キー私は、これはこのような何かのための正しい定義になるかどうかを知りたいと思いました、外来キーを停止する

public void onCreate(SQLiteDatabase db) { 
     // TODO Auto-generated method stub 
     db.execSQL("CREATE TABLE " + DATABASE_STOPTABLE + " (" + 
     KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
     KEY_STOPS + " TEXT NOT NULL);" + 
     "CREATE TABLE " + DATABASE_BUSTABLE + " (" + 
     KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
     KEY_BUSES + " TEXT NOT NULL);" + 
     "CREATE TABLE " + DATABASE_TIMETABLE + " (" + 
     KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
     KEY_BUSES + " TEXT NOT NULL, " + 
        + KEY_TIME + " integer," 
        + " FOREIGN KEY ("+KEY_TIME+") REFERENCES "+DATABASE_STOPTABLE+"   ("+KEY_STOPS+"), " + 
         + " FOREIGN KEY ("+KEY_TIME+") REFERENCES "+DATABASE_BUSTABLE+"   ("+KEY_BUSES+"));" 
       ); 
    } 

答えて

2

いいです。

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

「+」の文字が推測のonCreateイムでKEY_TIME + " integer,"

+0

前の二倍である:あなたが有効にする必要があることを覚えていますか? – BoneStarr

+0

私は私の答えを編集しました。 –

+0

ありがとう、大変感謝しています! – BoneStarr

関連する問題