Trigger de auditoria mysql

Tengo mi base de datos mysql solo para la data de mi aplicación, pero quiero implementar un sistema de auditoria (tracking) pero en otra base de datos por medio de trigger (para no mezclar la información), pero como toda la aplicación es parametrizable los nombres de las bases también, mi pregunta es, si le puedo pasar como parámetro el nombre de la base de datos y armar el query dentro del trigger, algo así:
set @db_log="track_db";
DELIMITER //
create trigger trg_usuarios_del before delete ON usuarios
FOR EACH ROW BEGIN
insert into @db_log.usuarios_log (select * from usuarios where id_usr=old.id_usr);
END;
//
Seria posible hacer esto en mysql 5. Se que para nombres de columnas y valores funciona pero para nombres de base de datos no se y por lo que le he intentado no funciona, si alguien tiene otra opinión me seria de mucha ayuda

1 Respuesta

Respuesta
1
Una opción es hacer un script de creación de trigger en el lenguaje de tu aplicación, de forma que cuando parametrizas la base de datos en la aplicación ejecutas el script cambiando en el mismo el nombre de la base de datos a la que apunta.
Cordial saludo.
Si, debido a que mysql se quedo corto con el tema de sql dinámico, había decidido hacerlo mediante el script de creación de trigger como lo habías planteado, en el cual creo la sentencia ddl de:
1. Crear la base de datos de auditoria si no existe
2. Crear las tablas de auditoria en la db de auditoria
3. Eliminar los trigger si existen de la db de producción
4. Crear los nuevos triggers en la db de auditoria
5. Asunto resuelto..
Muchas gracias por tu ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas