Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

crear, guardar y ejecutar un trigger(SQLyog)

Estas en el tema de crear, guardar y ejecutar un trigger(SQLyog) en el foro de Mysql en Foros del Web. estimados tengo un problema no se como trabajar con ttriggers y necesito ocuparlos para hagilizar mi aplicacion. me encuentro trabajando con PHP, AJAX, Javascript, y ...
  #1 (permalink)  
Antiguo 23/07/2009, 07:50
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 1 mes
Puntos: 2
crear, guardar y ejecutar un trigger(SQLyog)

estimados tengo un problema no se como trabajar con ttriggers y necesito ocuparlos para hagilizar mi aplicacion. me encuentro trabajando con PHP, AJAX, Javascript, y el gran MySql adminiostrado con SQLyog 5, pero no se como ejecutar o guardar mi trigger, que lo que hace es que cuando despues de actualizar un grupo de registros, toma estos registros y los guarda en una nueva base de datos dentro del mismo servidor, que almaceno informacion historica.

el trigger es

DELIMITER $$;
CREATE TRIGGER `lfox3`.`det_plan_AI` AFTER UPDATE on `lfox3`.`det_planillas`
FOR EACH ROW BEGIN
INSERT INTO hfox3.det_planillas_h (idnum, id_planilla, asiento, paradero, valor, estado, fecha_reg, fecha_venta, operador, unidad_zn, id_ofi, codof, destino, codbarra, id_liquidacion)
VALUES (NEW.idnum, NEW.id_planilla, NEW.asiento, NEW.paradero, NEW.valor, NEW.estado, NEW.fecha_reg, NEW.fecha_venta, NEW.operador, NEW.unidad_zn, NEW.id_ofi, NEW.codof, NEW.destino, NEW.codbarra, NEW.id_liquidacion, CURRENT_USER(), NOW() );
END$$

DELIMITER ;$$
  #2 (permalink)  
Antiguo 23/07/2009, 07:56
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: crear, guardar y ejecutar un trigger(SQLyog)

Desde linea de comandos yo le quitaría un ; y unos $$.

DELIMITER $$
CREATE TRIGGER `lfox3`.`det_plan_AI` AFTER UPDATE on `lfox3`.`det_planillas`
FOR EACH ROW BEGIN
INSERT INTO hfox3.det_planillas_h (idnum, id_planilla, asiento, paradero, valor, estado, fecha_reg, fecha_venta, operador, unidad_zn, id_ofi, codof, destino, codbarra, id_liquidacion)
VALUES (NEW.idnum, NEW.id_planilla, NEW.asiento, NEW.paradero, NEW.valor, NEW.estado, NEW.fecha_reg, NEW.fecha_venta, NEW.operador, NEW.unidad_zn, NEW.id_ofi, NEW.codof, NEW.destino, NEW.codbarra, NEW.id_liquidacion, CURRENT_USER(), NOW() );
END$$
DELIMITER ;


Nunca he corrido un trigger desde sqlyog, pero no creo que sean necesarios los delimiter.

No te funciona así?
CREATE TRIGGER `lfox3`.`det_plan_AI` AFTER UPDATE on `lfox3`.`det_planillas`
FOR EACH ROW BEGIN
INSERT INTO hfox3.det_planillas_h (idnum, id_planilla, asiento, paradero, valor, estado, fecha_reg, fecha_venta, operador, unidad_zn, id_ofi, codof, destino, codbarra, id_liquidacion)
VALUES (NEW.idnum, NEW.id_planilla, NEW.asiento, NEW.paradero, NEW.valor, NEW.estado, NEW.fecha_reg, NEW.fecha_venta, NEW.operador, NEW.unidad_zn, NEW.id_ofi, NEW.codof, NEW.destino, NEW.codbarra, NEW.id_liquidacion, CURRENT_USER(), NOW() );
END;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 23/07/2009, 08:18
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: crear, guardar y ejecutar un trigger(SQLyog)

nop lo probe asi:

DELIMITER $$;
CREATE TRIGGER `lfox3`.`det_plan_AI` AFTER UPDATE on `lfox3`.`det_planillas`
FOR EACH ROW BEGIN
INSERT INTO hfox3.det_planillas_h (idnum, id_planilla, asiento, paradero, valor, estado, fecha_reg, fecha_venta, operador, unidad_zn, id_ofi, codof, destino, codbarra, id_liquidacion)
VALUES (NEW.idnum, NEW.id_planilla, NEW.asiento, NEW.paradero, NEW.valor, NEW.estado, NEW.fecha_reg, NEW.fecha_venta, NEW.operador, NEW.unidad_zn, NEW.id_ofi, NEW.codof, NEW.destino, NEW.codbarra, NEW.id_liquidacion, CURRENT_USER(), NOW() );
END$$
DELIMITER ;$$

y me da el siguiente error:

Error Code : 1227
Access denied; you need the SUPER privilege for this operation
(0 ms taken)

ojo pero tengo los mismos privelegios del root
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 18:07.