Postępuję zgodnie z instrukcjami z dokumentacji SQLite pod numerem http://www.sqlite.org/foreignkeys.html, ale próba dodania klucza obcego kończy się niepowodzeniem. Oto moje instrukcje tworzenia:Klucz obcy SQLite
CREATE TABLE
checklist (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
checklist_title TEXT,
description TEXT,
created_on INTEGER,
modified_on INTEGER
);
CREATE TABLE
item (
_id INTEGER PRIMARY KEY AUTOINCREMENT,
FOREIGN KEY(checklist_id) REFERENCES checklist(_id),
item_text TEXT, item_hint TEXT,
item_order INTEGER,
created_on INTEGER,
modified_on INTEGER
);
Pierwszy stół jest w porządku. Błąd występuje w drugiej instrukcji. Próbowałem zarówno z zawijania dwóch kwerend w transakcji i bez. Tutaj jest błąd:
nieznany kolumna "checklist_id" w definicji klucza obcego (kod 1), podczas kompilacji: CREATE element tablicy (_id INTEGER PRIMARY KEY AUTOINCREMENT, FOREIGN KEY (checklist_id) odniesienia kontrolną (_id) ITEM_TEXT TEKST , item_hint TEXT, item_order INTEGER, created_on INTEGER, modified_on INTEGER)
Doh! Dziękuje za wszystko! :-) –
Właściwie był jeden problem z tym ... ograniczenie musi nastąpić po zdefiniowaniu wszystkich pól. Tak więc obca linia klucza powinna być po modyfikowanej_on. (Na wypadek, gdyby ktoś patrzył na to w 2019 roku. Witaj z przeszłości!) –
Naprawiłem to. @GeeksOnHugs, powinieneś być w stanie edytować odpowiedź na swoje pytania. Ktoś musi zatwierdzić edycję, ale w przyszłości, jeśli czyjaś odpowiedź zawiera błąd, możesz ją edytować dla tych osób w 2019 roku :) – Scen