tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
1360
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von VanHellsehn
    VanHellsehn VanHellsehn ist offline Mitglied Brokat
    Registriert seit
    May 2007
    Beiträge
    299
    Hi,
    Ich kenne mich mit MySQl triggern noch nicht so aus deshalb hier mal eine Frage:
    Wie kann ich es machen das wenn ich in einer Spalte etwas auf 1 setzte (UPDATE) das er dann den vorherigen wert in eine andere Tabelle schreibt..
    Ich habe immer nur Beispiele mit einem Insert gefunden..

    Vielen dank für eure Hilfe im voraus..
    Mit freundlichen Grüßen,
    Marvvvv =)
     
    =)

  2. #2
    turico turico ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    15
    In OLD.spaltenname steht der alte Wert.
     

  3. #3
    Avatar von VanHellsehn
    VanHellsehn VanHellsehn ist offline Mitglied Brokat
    Registriert seit
    May 2007
    Beiträge
    299
    Hab dazu nochmal ne frage und zwar weiß ich nicht wie ich es auf eine row in der Tabelle beziehen kann.
    Ich habe eine Tabelle in der ich die Besucher des Tage speicher:
    Code :
    1
    2
    
    keyword    level      timestamp
    day_visit    2        1236281333
    Und da wird der Level auf 1 und ein aktueller Unix-Timestamp gesetzt wenn ein Besucher zum erstem mal an diesem Tag die Seite besucht..
    Aber ich möchte die daten für eine Statistik behalten.. was jetzt ?


    Edit:
    Ich habe gerade versuch folgenden Code zu verwenden:
    Code :
    1
    2
    3
    4
    5
    6
    
    CREATE TRIGGER counter_backup BEFORE UPDATE ON counter_levels
      FOR EACH ROW BEGIN
        IF NEW.level = 1 THEN
            INSERT counter_backups (keyword, level, timestamp) VALUES (OLD.keyword, OLD.level, OLD.timestamp); 
        END IF;
      END;
    Dabei kam folgender Fehler bei rum.
    Ist level für irgendetwas reserviert?
    Code :
    1
    
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT counter_backups (keyword, level, timestamp) VALUES (OLD.keyword, OLD.leve' at line 4
    Geändert von VanHellsehn (10.03.09 um 11:29 Uhr)
     
    =)

  4. #4
    turico turico ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    15
    Hi,

    der Trigger ist okay. Probleme macht wahrscheinlich der Delimiter.
    Versuch den mal vorher in ein anderes Zeichen zu ändern und später wieder rückwärts:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    DELIMITER |
     
    CREATE TRIGGER counter_backup_bu
      BEFORE UPDATE ON counter_levels
      FOR EACH ROW BEGIN
        IF NEW.level = 1 THEN
            INSERT counter_backups (keyword, level, timestamp) VALUES (OLD.keyword, OLD.level, OLD.timestamp); 
        END IF;
      END;
    |
     
    DELIMITER ;

    Guck dir das am Besten noch einmal auf dieser Seite an (einfach nach "delimiter" suchen). Dort gibts Beispiele.

    Gruß
     

  5. #5
    Avatar von VanHellsehn
    VanHellsehn VanHellsehn ist offline Mitglied Brokat
    Registriert seit
    May 2007
    Beiträge
    299
    Ich arbeite mit phpMyAdmin.
    Ich habe immer gedacht da muss man diesen nicht setzten..
    Wenn ich es wie in deinem Beispiel mache kommt wieder ein fehler bei rum der durch den Delmiter verursacht wurde:
    Code :
    1
    2
    3
    4
    
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER |
     
    CREATE TRIGGER trigger_counter_backup
      BEFORE UPDATE ON counter' at line 1
     
    =)

  6. #6
    turico turico ist offline Mitglied
    Registriert seit
    Aug 2004
    Beiträge
    15
    Versuch es mal so wie im Anhang.
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Problem mit MySQL Trigger-del.jpg  
     

  7. #7
    Avatar von VanHellsehn
    VanHellsehn VanHellsehn ist offline Mitglied Brokat
    Registriert seit
    May 2007
    Beiträge
    299
    Vielen dank es hat geklappt =)
     
    =)

Ähnliche Themen

  1. MySQL Trigger
    Von Ruthy im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 05.07.10, 23:22
  2. Mysql trigger
    Von muss_ im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 12.01.10, 17:58
  3. MySQL Trigger auf Java Applikationen?
    Von Uwe Janssen im Forum Java Grundlagen
    Antworten: 3
    Letzter Beitrag: 04.06.09, 09:51
  4. Trigger in MySQL
    Von NBOne im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 14.08.08, 11:46
  5. MySQL Trigger mit urldecode Funktion
    Von Dunas im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 08.07.08, 23:27