2012-03-31 17 views
0

Hallo Ich versuche, eine SQL-Datenbank zu erstellen, und ich versuche, meine Fremdschlüssel in der Oncreate-Methode zu definieren. Ich wollte nur wissen, ob dies die richtige Definition für etwas so sein würde:Definition von Fremdschlüsseln

Routentabelle: ID, Name

Stop-Tabelle: id, name

Zeitplan: id, Fremdschlüssel Bus , Fremdschlüssel zum Stoppen

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+"));" 
       ); 
    } 

Antwort

2

Es ist in Ordnung. Denken Sie daran, dass Sie aktivieren:

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

Das Zeichen '+' ist zweimal vor KEY_TIME + " integer,"

+0

Im onCreate im Erraten? – BoneStarr

+0

Ich habe meine Antwort bearbeitet. –

+0

Vielen Dank, sehr geschätzt! – BoneStarr

Verwandte Themen