Foros del Web » Programando para Internet » PHP »

Trigger no permite guardar datos en tabla

Estas en el tema de Trigger no permite guardar datos en tabla en el foro de PHP en Foros del Web. Saludos, tengo un inconveniente con el siguiente trigger, no me permite guardar datos en la base de datos: DROP TRIGGER IF EXISTS `Bitac_Inmu_Insert` ; CREATE ...
  #1 (permalink)  
Antiguo 14/04/2014, 21:32
Avatar de heberthm  
Fecha de Ingreso: noviembre-2013
Ubicación: Cali
Mensajes: 65
Antigüedad: 10 años, 5 meses
Puntos: 1
Trigger no permite guardar datos en tabla

Saludos, tengo un inconveniente con el siguiente trigger, no me permite guardar datos en la base de datos:

DROP TRIGGER IF EXISTS `Bitac_Inmu_Insert` ;

CREATE DEFINER = `root`@`localhost` TRIGGER `Bitac_Inmu_Insert` AFTER INSERT ON `inmuebles`
FOR EACH
ROW INSERT INTO bitacora( operacion, usuario, host, modificado, tabla )
VALUES (
Insertar, CURRENT_USER( ) , host, NOW( ) , Inmueble
)

El anterior trigger funciona como una bitacora o log de usuario, ejecutándose automáticamente cada vez que se inserta datos al tabla inmuebles, pero no permite guardar datos ni en la tabla bitacora ni en la tabla inmuebles.
Agradezco la colaboración.
__________________
Hebeth Mazuera
  #2 (permalink)  
Antiguo 15/04/2014, 01:47
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Trigger no permite guardar datos en tabla

Habria que trasladar este post a mysql, vaya he supuesto que usas mysql....

'Insertar', CURRENT_USER( ) , host, NOW( ) , 'Inmueble'

Los delimitadores en lo que sean strings son obligatorios....

Código MySQL:
Ver original
  1. DROP TRIGGER IF EXISTS `Bitac_Inmu_Insert` ;
  2.  
  3. DELIMITER $$;
  4. CREATE TRIGGER `Bitac_Inmu_Insert` AFTER INSERT ON `inmuebles`
  5. FOR EACH ROW INSERT INTO bitacora( operacion, usuario, host, modificado, tabla ) VALUES ('Insertar', CURRENT_USER( ) , host, NOW( ) , 'Inmueble');
  6. $$
  7. DELIMITER ;

Creo....

Ten en cuenta que CURRENT_USER( ) será el usuario actual logueado en el servidor de bases de datos... no forzosamente será el mismo que se haya logueado en la aplicación.... Por "host" esperas la maquina des de donde se ha conectado ese usuario.... si la aplicación es php es muy facil que siempre sea el mismo usuario y la maquina siempre sea localhost (es decir la misma donde corre el servidor de bbdd)


Esto igual te sirve....

http://tavoberry.com/blog/crear-una-bitacora-en-mysql/
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 15/04/2014 a las 01:57

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:14.