Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/07/2011, 18:49
Sofmundi
 
Fecha de Ingreso: enero-2010
Mensajes: 302
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Como crear triggers

Cita:
Iniciado por gnzsoloyo Ver Mensaje
¿Leíste bien lo que te puse?
El tema es simple: La conexión que usas le pertenece al root (muy mal hecho por cierto, ese usuario no se debe utilizar si no es para tareas administrativas). Es con el username root con el que abres la conexión, y para MySQL ese es el único usuario que está. Los usuarios que administres en tu base por programación, no existen para MySQL. Sólo existen para tu aplicación.
¿Se comprende la diferencia?
La única solución que yo le veo q lo que quieres hacer es, apenas abres la conexión, cargar una variable de usuario con el nombre del usuario que se loguea en tu programa:
Código MySQL:
Ver original
  1. SET @usuario = 'administrador';
y recién entonces hacer el insert que dispare el trigger.
Pero el trigger debería tener esta sintaxis:
Código MySQL:
Ver original
  1. CREATE TRIGGER trigger_auditoria_clientes AFTER UPDATE ON activo
  2.    INSERT INTO auditoria(serialemp, descripcion, usuario, modificado )
  3.    VALUES (OLD.serialemp, OLD.descripcion, @usuario, NOW());
Como las variables de usuario existen sólo en la conexión donde se usan, y mientras la conexión no se cierre, no te traerán problemas ni con la memoria, ni con otros usuarios (dos conexiones diferentes del mismo usuario pueden utilizar el mismo nombre de variable y diferente contenido sin que se generen conflictos).
Es que el root lo estoy utilizando desde otro pc que no administro yo, pero te pregunto ese "SET" como y donde lo podria declarar ? es que a veces no me ejecutan unas consultar segun donde lo coloque gracias