Tema: Bitacoras
Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/02/2015, 14:24
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: 16 años, 5 meses
Puntos: 2658
Respuesta: Bitacoras

Código MySQL:
Ver original
  1. CREATE TABLE rastreo (
  2.     id_usuario INT NOT NULL,
  3.     operacion VARCHAR(30),
  4.     usuario VARCHAR(30),
  5.     host VARCHAR(30),
  6.     modificado datetime,
  7.     tabla VARCHAR(30),
  8.     FOREIGN KEY(id_usuario) REFERENCES USER(id_usuario)
  9.     );

Eso es otra cosa...

Ahra bien, cuando mencionas el TRIGGER, asumiendo que se trata de este código:
Código SQL:
Ver original
  1. DROP TRIGGER IF EXISTS `bitacora`;
  2. DELIMITER $$
  3. CREATE TRIGGER `bitacora` AFTER INSERT ON convenios
  4. FOR EACH ROW INSERT INTO rastreo(host, USER, operacion, modificado, tabla, USER.id_usuario)
  5. VALUES (SUBSTRING(USER(), (INSTR(USER(),'@')+1)), SUBSTRING(USER(), 1, (instr(USER(),'@')-1)), 'INSERTAR', NOW(), 'convenios')$$
  6. DELIMITER ;
lo que habría que ver es si en la tabla "CONVENIOS" tienes una columna dedicada al "ID_USUARIO".
Entendamos que un TRIGGER sólo recibe como datos de entrada, aquellos datos que se insertan/actualizan en la propia tabla del TRIGGER, por lo que no puede tomar parámetros externos.
Esto quiere decir que si la tabla donde está definido el trigger no incluye una columna donde en ese momento estés insertando el id_usuario, ese dato simplemente no existe para el trigger.
No puedo saber si lo tienes o no porque no estás posteando la estructura de ESA tabla.

¿Existe ese dato y lo insertas desde la aplicación?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)