ich ein litte Problem mit meiner SQLite-Datenbank, vor allem mit den folgenden Tabellen:SQLite wird nicht Fehler aus, wenn nicht vorhandenen Fremdschlüsselwertes Einfügen
CREATE TABLE foo (
key INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
CREATE TABLE bar (
_id INTEGER PRIMARY KEY,
key INTEGER NOT NULL,
what TEXT NOT NULL,
else TEXT,
FOREIGN KEY (key) REFERENCES foo (key) DEFERRABLE INITIALLY DEFERRED
);
Wenn ich der SQLite-Dokumentation die richtige Art und Weise zu verstehen, Der Versuch, eine Zeile in bar
einzufügen, die keiner Zeile in der Tabelle foo
entspricht, sollte fehlschlagen und einen Fehler oder etwas verursachen.
Leider folgenden Befehl funktioniert, auch wenn keine Taste 42 existis in foo
:
INSERT INTO bar (key, what, else) VALUES (42, "something", "else");
Dies wird eine Reihe in bar
mit den angegebenen Werten (key = 42) erstellen, während es keine Zeile in foo
existiert mit dem Schlüssel 42.
Ist es mir oder was ist hier falsch?
Haben Sie das Pragma 'PRAGMA foreign_keys = ON' gesetzt? – rapvelopment