Der Fremdschlüssel wird nicht erzwungen

8

Warum wird die folgende Fremdschlüsseleinschränkung (obwohl sie ordnungsgemäß ausgeführt wird) von SQLite nicht erzwungen? Wie kann ich die Beziehung erzwingen?

%Vor%     
Maxim Gershkovich 11.06.2010, 04:27
quelle

2 Antworten

12

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).

    
Alex Martelli 11.06.2010, 04:41
quelle
3

Sie können die Fremdschlüsselunterstützung auch über das Einbetten in Verbindungszeichenfolge aktivieren:

%Vor%

Beispiel:

%Vor%     
Richard Anderssen 15.02.2017 10:50
quelle

Tags und Links