Hallo zusammen,
ich habe ein Problem mit SQLite. Ich habe eine Datenbank mit 4 Tabellen (jetzt allerdings lediglich 2 Tabellen relevant), 3 Foreign Keys und 2 Triggern.
SQL
CREATE TABLE [TABELLE1] (
[Father] varchar2 CONSTRAINT [FK_TABELLE1] REFERENCES [TABELLE1]([Name]) ON DELETE CASCADE,
[Name] varchar2 NOT NULL,
CONSTRAINT [sqlite_autoindex_TABELLE1] PRIMARY KEY ([Name]));
CREATE TRIGGER [Deletion]
AFTER DELETE
ON [TABELLE1]
FOR EACH ROW
BEGIN
DELETE FROM TABELLE1WHERE Father = old.Name OR Name = old.Name;
END;
CREATE TRIGGER [Insertion]
AFTER INSERT
ON [TABELLE1]
FOR EACH ROW
BEGIN
INSERT INTO TABELLE2(Name, Zwei) VALUES(new.Name, "BLABLA");
END;
CREATE TABLE [TABELLE2] (
[Name] varchar2 NOT NULL REFERENCES [TABELLE1]([Name]) ON DELETE CASCADE,
[Zwei] varchar2 NOT NULL);
Alles anzeigen
Zu Beginn sehen die Tabellen wie folgt aus:
Father | Name
-------------
| B
| C
| A
A | D
A | E
A | F
E | G
G | H
Name | Zwei
-------------
B | BLABLA
C | BLABLA
A | BLABLA
D | BLABLA
E | BLABLA
F | BLABLA
G | BLABLA
H | BLABLA
Alles anzeigen
Wenn ich in meinem SQL-Editor nun folgenden Befehl abschiesse:
DELETE FROM TABLE1 WHERE Name = "A";
Kommt folgendes raus:
Genau das gleiche Statement in AutoIt via _SQLite_Exec():
Father | Name
-------------
| B
| C
Name | Zwei
-------------
B | BLABLA
C | BLABLA
E | G
G | H
Alles anzeigen
Das Ergebnis des Statements aus dem Browser ist das erwartete. Meine Vermutungen würden nun irgendwie bei einem Commit/Nicht auslösen des Triggers liegen ... Allerdings sieht das für mich danach aus, als ob AutoIt den Trigger abschießt, allerdings nur 1x und "er sich nicht selbst" wieder aufruft ... Ich hoffe das war nun nicht alt zu falsch formuliert.
Kann mir jemand helfen und sich vorstellen woran das liegt?
So Far