Buenas tardes compañeros.
Necesito 3 triggers para cuando un usuario haga un INSERT, UPDATE o DELETE se guarde cierta información en una tabla.
Tengo estos 3 triggers que he encontrado por internet y se ajustan bastante a lo que necesito:
DROP TRIGGER IF EXISTS `bit_carr_ins`;
DELIMITER //
CREATE TRIGGER `bitacora` AFTER INSERT ON `carrera`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “INSERTAR”, NOW(), “CARRERA”)
//
DROP TRIGGER IF EXISTS `bit_carr_upd`;
CREATE TRIGGER `bit_carr_upd` AFTER UPDATE ON `carrera`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ACTUALIZAR”, NOW(), “CARRERA”)
//
DROP TRIGGER IF EXISTS `bit_carr_del`;
CREATE TRIGGER `bit_carr_del` AFTER DELETE ON `carrera`
FOR EACH ROW INSERT INTO bitacora(host, usuario, operacion, modificado, tabla) VALUES (SUBSTRING(USER(), (INSTR(USER(),’@')+1)), SUBSTRING(USER(),1,(instr(user(),’@')-1)), “ELIMINAR”, NOW(), “CARRERA”)
//
Necesito saber como modificar para que en vez de que afecte a una sola tabla, sea cuando se haga una de las 3 operaciones a cualquier tabla. Tambien necesitaria que en vez de guardar "INSERTAR","ACTUALIZAR" O "ELIMINAR" guardase la sentencia SQL ejecutada.
En estos triggers viene como ultimo campo se guarda la tabla afectada a pelo (ya que en estos ejemplos cada trigger afecta estáticamente a una sola tabla) y necesitaría que se guardase la tabla(s) afectada.
Agradecería que me hechasen una mano.
Saludos.