tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Yaslaw
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
245
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von raikkonentk
    raikkonentk raikkonentk ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Beiträge
    77
    Hallo,

    ich möchte bei einem Trigger der UPDATE, INSERT, DELETE abfängt,
    die jeweilige action in eine andere Log-Tabelle schreiben.

    Das Problem dabei ist, dass ich bisher nicht rausgefunden haben wie ich mir die Triggeroperation anzeigen lassen kann oder ob das in mysql 5 überhaupt funktioniert.

    Bei PostgreSQL gibt es dafür die Variable TG_OP.
    Deren Pendant in MySQL oder eine alternative Lösung suche ich, damit ich nicht drei Trigger mit der selben Funktion schreiben muss.

    Vielen Dank.
     
    STS Altiris Notification Server 6 / STS Altiris Deployment Solution 6.9 /SMP 7&7.1 / Novell CLE/CLP/CLA/DCTS
    HP APC - Designing Virtualization Solutions, HP APP - HP Enterprise Solutions, Designing Commercial SMB-Solutions

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Das weiss ich grad auch nicht.
    Aber du kannst pro Tabellenoption einen eigenen Trigger anlegen.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Avatar von raikkonentk
    raikkonentk raikkonentk ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Beiträge
    77
    Danke für die schnelle Anwort, aber genau das wollte ich eben verhindern, weil ich dann bei späteren Änderungen an die drei Stellen denken muss
     
    STS Altiris Notification Server 6 / STS Altiris Deployment Solution 6.9 /SMP 7&7.1 / Novell CLE/CLP/CLA/DCTS
    HP APC - Designing Virtualization Solutions, HP APP - HP Enterprise Solutions, Designing Commercial SMB-Solutions

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Mach doch eine Stored Procedure, welche du aus allen dreien aufrufst. Dann hast du die Verabreitung an einem Ort
    raikkonentk bedankt sich. 
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Avatar von raikkonentk
    raikkonentk raikkonentk ist offline Mitglied Silber
    Registriert seit
    Apr 2004
    Beiträge
    77
    darauf wird es wohl hinauslaufen, auch wenn ichs schade finde, dass so etwas triviales scheinbar nicht in mysql funktioniert. danke
     
    STS Altiris Notification Server 6 / STS Altiris Deployment Solution 6.9 /SMP 7&7.1 / Novell CLE/CLP/CLA/DCTS
    HP APC - Designing Virtualization Solutions, HP APP - HP Enterprise Solutions, Designing Commercial SMB-Solutions

  6. #6
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    Zitat Zitat von MySQL Reference
    Mit den Schlüsselwörtern OLD und NEW können Sie auf Spalten zugreifen, die von einem Trigger betroffen sind. (Die Groß- und Kleinschreibung spielt für OLD und NEW keine Rolle.) In einem INSERT-Trigger kann nur NEW.col_name benutzt werden, da keine alte Zeile vorhanden ist, und in einem DELETE-Trigger nur OLD.col_name, da keine neue Zeile vorhanden ist. In einem UPDATE-Trigger können sowohl OLD.col_name für den Verweis auf Tabellenzeilen vor der Änderung als auch NEW.col_name für einen Verweis auf die geänderten Zeilen verwendet werden.
    Das heißt, du müsstest prüfen, was von denen gesetzt ist und weißt dann auch welche Aktion ausgeführt wurde.
    Es wäre aber trotzdem besser, wenn du jeweils einen Trigger schreiben würdest, da du so übersichtlicheren und wartbareren Code erzeugst
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

Ähnliche Themen

  1. MySQL Einzelne Einträge abrufen
    Von dsNDesign im Forum Relationale Datenbanksysteme
    Antworten: 8
    Letzter Beitrag: 28.02.09, 19:11
  2. MySQL: Letzten Kassenstand abrufen!
    Von punisher86 im Forum Relationale Datenbanksysteme
    Antworten: 13
    Letzter Beitrag: 12.02.09, 13:58
  3. Array in MySQL speichern und abrufen
    Von Lachkopf im Forum PHP
    Antworten: 2
    Letzter Beitrag: 11.05.08, 21:48
  4. Via JS alle X Sekunden MySQL-Datensätze abrufen
    Von Hawkster im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 08.10.06, 17:09
  5. MySQL Fehlermeldung mit PHP abrufen?
    Von Moartel im Forum PHP
    Antworten: 1
    Letzter Beitrag: 23.08.01, 15:08

Stichworte