# mysql update trigger für bestimmte Spalten einschränken



## P_H_I_L (10. Juni 2008)

Hallo zusammen, 
wen sich etwas an einer Row getan hat, dann soll in eine Tabelle Logging geschrieben werden. Doch nur an bestimmten Spalten soll geprüft werden ob sich etwas getan hat.

Hier mein erster Trigger, der immer mit logged, egal an welcher Spalte etwas geändert wurde.

```
drop trigger trigger_route_objekt
CREATE TRIGGER trigger_route_objekt
BEFORE UPDATE ON route_objekt
FOR EACH ROW 

insert into logging (`logtype`, `user`, `message`, `date`, `wtu_id`)
VALUES ('INFO','admin',CONCAT('Öffnungszeitpunkt für ein Objekt wurde geändert. Alter Wert: ',old.wtu_oeffnungszeitpunkt,' Neuer Wert: ',new.wtu_oeffnungszeitpunkt),sysdate(),NULL)
```

die Tabelle route_objekt hat eine Spalte namens "wtu_oeffnungszeitpunkt".
Nur wenn ein Update an dieser Column stattfindet, soll der insert-Befehl in die logging Tabelle ausgelöst werden.

Wie ist das in MYSQL machbar?
Bitte um Hilfe


----------



## onkelyves (11. Juni 2008)

Bau doch noch 'ne IF Abfrage ein, in der du prüfst ob der alte gleich dem neuen Wert ist und packst darein dann das Logging.


----------

