Próbowałem uzyskać klucze obce działające w bazie danych Android SQLite. Próbowałem następującej składni, ale daje mi to siłę blisko:SQlite - Android - Składnia klucza obcego
private static final String TASK_TABLE_CREATE = "create table "
+ TASK_TABLE + " (" + TASK_ID
+ " integer primary key autoincrement, " + TASK_TITLE
+ " text not null, " + TASK_NOTES + " text not null, "
+ TASK_DATE_TIME + " text not null, FOREIGN KEY ("+TASK_CAT+") REFERENCES "+CAT_TABLE+" ("+CAT_ID+"));";
Jakieś pomysły, co mogę robić źle? jeśli potrzebujesz zobaczyć inną strukturę tabeli, to mogę, to jest bardzo prosta struktura dla drugiej z identyfikatorem i nazwą.
Edit:
Tutaj jest błąd:
03-13 13:42:35.389: ERROR/AndroidRuntime(312): Caused by: android.database.sqlite.SQLiteException: unknown column "taskCat" in foreign key definition: create table reminders (_id integer primary key autoincrement, task_title text not null, notes text not null, reminder_date_time text not null, FOREIGN KEY (taskCat) REFERENCES category (_id));
To rozwiązanie nie działa dla mnie. Rozwiązaniem, które znalazłem, było zdefiniowanie wszystkiego w jednym wierszu, ale z nieco inną składnią. Zrobiłem to zamiast dwóch ostatnich linii: TASK_CAT + "INTEGER REFERENCES" + CAT_TABLE + ");"; – HotN
@HotN, masz rację kolego. Twoje rozwiązanie również zadziałało. Dzięki – blueware
@jetho Chcę dodać functionallity, że po usunięciu klucza nadrzędnego cały rekord dziecka powinien zostać usunięty. – UnKnown