Rouven: Trigger oder Stored Procedure

Beitrag lesen

Hello,

ich habe nur gerade mal kurz ins Manual geschaut bzw. in meinem Hirn gekramt. Also vorweg: ja, ein Trigger dürfte für deine Zwecke geeignet sein. Ob das DBMS auch Trigger auf Schema-Ebene beherrscht, na ja, MySQL tuts wohl nicht, dementsprechend kommst du schätze ich um Trigger pro Tabelle nicht herum.

Zur Frage nach dem Delimiter: Das ist nur für das Beispiel. Wenn du dir den Trigger anschaust, dann stehen da mehrere SQL-Statements drin. Die müssen syntaktisch voneinander getrennt sein -> Notwendigkeit eines ";". Nun ist aber ";" gleichzeitig das Anweisungstrennzeichen für die Konsole, über die diese CREATE-Statements abgesetzt werden, die Parser würde also einen Syntaxfehler melden, weil mitten in der Definition das Statement zu Ende ist. Ergo: Wir tauschen kurz den Delimiter ";" durch "|" aus (gilt auf der Ebene der ganzen CREATE-Statements) und können damit ";" normal im Text verwenden.

Was deine konkrete Aufgabe angeht - hmh, mal so ins Blaue geschrieben:

CREATE TRIGGER w_counter
AFTER UPDATE ON adresse
FOR EACH NEW ROW BEGIN
   UPDATE adresse SET writecounter = writecounter + 1 WHERE id = NEW.id -- vorausgesetzt, deine Adresse hat eine Spalte 'id'
END

So, jetzt KÖNNTE es ein Problem mit Kaskadierung geben (Update->Trigger->Update->...), dazu hab ich allerdings gerade keine Lösung parat - MySQL 5 aber glaub ich auch kein Problem...

Was das Ausführen von zusätzlichen Prüfungen angeht verweise ich dich einfach mal an die Dokumentation , insbesondere den Kommentar 'Tim H on October 19 2006 10:16pm'

MfG
Rouven

--
-------------------
Ambition is the last refuge of failure.  --  Oscar Wilde (Irish Poet, Novelist, Dramatist and Critic, 1854-1900)