Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/07/2011, 18:29
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Como crear triggers

¿Leíste bien lo que te puse?
Cita:
Si los usuarios los administras independientemente, es decir que en tu base tienes una tabla "usuarios", eso no se puede saber por medio de MySQL, si no estan registrados en el MySQL mismo.
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).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 11/07/2011 a las 18:40