MySQL Trigger: Usuń z tabeli po usunięciu
Zakres: dwie tabele. Gdy tworzony jest nowy patron, mają one pewne informacje o nich przechowywane w drugiej tabeli (zrobiono to również za pomocą wyzwalacza, działa zgodnie z oczekiwaniami). Oto przykład mojej struktury tabeli i relacji.
Tabela 1->patroni
+-----+---------+-----+
+ id + name + val +
+=====+=========+=====+
+ 37 + george + x +
+-----+---------+-----+
+ 38 + sally + y +
+-----+---------+-----+
Tabela 2 ->patron_info
+----+-----+----------+
+ id + pid + name +
+----+-----+----------+
+ 1 + 37 + george +
+----+-----+----------+
+ 2 + 38 + sally +
+----+-----+----------+
Administrator może zarządzać klientami. Gdy zdecydują się usunąć patrona, patron zostaje usunięty zTabela 1 patrons
. W tym momencie nic się nie dziejeTabela 2 patron_info
.
Po prostu próbuję utworzyć wyzwalacz do usunięcia z tabeli 2, gdy tabela 1 ma element usunięty. Oto, co próbowałem ...
Początkowo próbuję upuścić wyzwalacz, jeśli istnieje (tylko po to, by oczyścić powietrze) ...
DROP TRIGGER IF EXISTS log_patron_delete;
Następnie próbuję utworzyć wyzwalacz ...
CREATE TRIGGER log_patron_delete AFTER DELETE on patrons
FOR EACH ROW
BEGIN
DELETE FROM patron_info
WHERE patron_info.pid = patrons.id
END
W tym momencie pojawia się błąd składniowy1046: Check syntax near END on line 6
. Nie wiem, na czym polega błąd w tym momencie. Próbowałem kilku różnych odmian. Czy muszę tutaj użyć separatora?
Czy ktoś może pomóc mi odzyskać zdrowie psychiczne?