Warum wird die folgende Fremdschlüsseleinschränkung (obwohl sie ordnungsgemäß ausgeführt wird) von SQLite nicht erzwungen? Wie kann ich die Beziehung erzwingen?
%Vor%Wie die entsprechenden Dokumente sagen (im Abschnitt 2. Aktivieren der Fremdschlüsselunterstützung ):
Angenommen, die Bibliothek wird mit kompiliert Fremdschlüssel Einschränkungen aktiviert, es muss noch von der aktiviert werden Anwendung zur Laufzeit mit dem PRAGMA foreign_keys Befehl. Zum Beispiel:
sqlite> PRAGMA foreign_keys = ON;
Fremdschlüsseleinschränkungen sind deaktiviert Standardmäßig (für rückwärts Kompatibilität), muss also aktiviert werden getrennt für jede Datenbank Verbindung getrennt.
Hast du das PRAGMA
in der entsprechenden Verbindung benutzt? (Nehmen wir an, dass sqlite, wie die Dokumentation sagt, in geeigneter Weise kompiliert wurde, und natürlich auch eine Version, die in letzter Zeit ausreicht, um die Durchsetzung von Fremdschlüsselbeschränkungen zu ermöglichen).
Sie können die Fremdschlüsselunterstützung auch über das Einbetten in Verbindungszeichenfolge aktivieren:
%Vor%Beispiel:
%Vor%Tags und Links sqlite google-gears