T-Rex: ein Triggertyp für jedes Ereignis

Moin,

Wir haben zwei Tabellen. Die eine soll automatisch eine Summe aus mehrere Datensätzen der anderen Tabelle in einem Feld stehen haben. Dies haben wir aktuell mit 3 Triggern gemacht (AFTER INSERT, AFTER UPDATE, AFTER DELETE). Jetzt die Frage ob es auch einen Trigger gibt, der alle 3 Ereignisse abfängt?

MySQL 5.5

Danke

AFTER POST SET Gruß T-Rex;

  1. Moin,

    Wir haben zwei Tabellen. Die eine soll automatisch eine Summe aus mehrere Datensätzen der anderen Tabelle in einem Feld stehen haben. Dies haben wir aktuell mit 3 Triggern gemacht (AFTER INSERT, AFTER UPDATE, AFTER DELETE). Jetzt die Frage ob es auch einen Trigger gibt, der alle 3 Ereignisse abfängt?

    Ein Trigger kann laut Dokumentation nur eine Aktion abfangen.

    Grüße Marco

    1. Ein Trigger kann laut Dokumentation nur eine Aktion abfangen.

      Joa die hab ich "gelesen" und hoffe das es irgendwie ein Trigger "Change" oder sowas gibt. Den ein neu hinzufügen wäre ein change und ein update auch und ein delete auch.
      Aber change gibt es anscheinend nicht, so bleibt es bei 3 Triggern?

      Gruß
      T(rigger)-Rex

      1. Moin,

        Aber change gibt es anscheinend nicht, so bleibt es bei 3 Triggern?

        Wenn mich Tom oder Gunnar nicht berichtigt schätze ich ja^^

        Grüße Marco

  2. gudn tach!

    Wir haben zwei Tabellen. Die eine soll automatisch eine Summe aus mehrere Datensätzen der anderen Tabelle in einem Feld stehen haben. Dies haben wir aktuell mit 3 Triggern gemacht (AFTER INSERT, AFTER UPDATE, AFTER DELETE). Jetzt die Frage ob es auch einen Trigger gibt, der alle 3 Ereignisse abfängt?

    grundsaetzlich kann sowas gehen, z.b. in PostgreSQL kann man die 3 events einfach mit OR verknuepfen.

    MySQL 5.5

    ...da anscheinend (mal wieder) nicht.

    prost
    seth

  3. Hi,

    Wir haben zwei Tabellen. Die eine soll automatisch eine Summe aus mehrere Datensätzen der anderen Tabelle in einem Feld stehen haben. Dies haben wir aktuell mit 3 Triggern gemacht (AFTER INSERT, AFTER UPDATE, AFTER DELETE). Jetzt die Frage ob es auch einen Trigger gibt, der alle 3 Ereignisse abfängt?

    Du kannst eine Stored-Procedure schreiben, welche den Code beinhaltet. Die drei Trigger mach dann im Wesentlichen nichts anderes, als die SP aufzurufen.
    Nachteil ist, dass du dann keinen direkten Zugriff auf NEW/OLD hast. Dies kannst du umgehen, in dem du alle/einige Spalten aus NEW/OLD der SP als Parameter übergibst.

    Bis die Tage,
    Matti

  4. Tach!

    Wir haben zwei Tabellen. Die eine soll automatisch eine Summe aus mehrere Datensätzen der anderen Tabelle in einem Feld stehen haben.

    Warum eigentlich? Die Summe kann man doch auch beim Abfragen berechnen.

    dedlfix.

    1. Warum eigentlich? Die Summe kann man doch auch beim Abfragen berechnen.

      Könnte man. Man könnte sich aber auch die 5 Joins sparen und einfach eine Redundante Spalte mit der Summe automatisch von einem Trigger pflegen lassen ;). Kommt jetzt nur noch drauf an ob man mehr Lesezugriffe auf die Datenbank hat oder mehr Schreibzugriffe.

      Gruß
      lesender
      T-Rex

  5. Moin,

    Wir haben zwei Tabellen. Die eine soll automatisch eine Summe aus mehrere Datensätzen der anderen Tabelle in einem Feld stehen haben.

    Idee, falls die Summe von einem Script gebildet wird: Die Summe dann in eine mysql-Variable (SET @summe = 4711) schreiben, die ist für eine Session gültig. Auf diese Variable geht dann der Trigger zu, baue _einen Trigger für das _Letzte_ Ereignis, was an der Summenbildung beteiligt ist, bzw. nach der Summenbildung eintritt.

    Hotti