Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2013, 04:40
ReGuE
 
Fecha de Ingreso: febrero-2013
Ubicación: Granada
Mensajes: 13
Antigüedad: 11 años, 2 meses
Puntos: 0
Error 1363 al crear trigger de auditoría

Hola a todos, primero gracias por vuestra ayuda, estoy intentando crear un trigger que haga esto:

Crea un TRIGGER llamado CAMBIO_EMPLEADO que cuando se vaya a hacer un cambio en la tabla CLIENTES registre los datos en CLIENTES_MODIF. Para registrar el usuario existe una función, CURRENTUSER() que te devuelve el usuario actual. Y para el momento actual puedes utilizar alguna función ya conocida.

y tengo hecho esto:
Código MySQL:
Ver original
  1. -- Trigger DDL Statemets
  2. DELIMITER $$
  3. USE `empresa` $$
  4. definer=`root`@`localhost`
  5. TRIGGER `empresa`.`CAMBIO_EMPLEADO`
  6. after INSERT ON `empresa`.`clientes`
  7. if new.id_empleado <> old.id_empleado THEN
  8.     insert into clientes_modif (nombre,apellidos,id_antiguo_empleado,usuario,cambiado)
  9.     values (nombre, apellidos,old.id_empleado,CURRENT_USER(),NOW());
  10. end$$
Pero me tira el error 1363: "there is no OLD row in on INSERT trigger"

Como puedo solucionar esto si lo que intento hacer es que cuando vaya a cambiar el id_empleado, se guarde el antiguo id_empleado en la tabla clientes_modif.

un saludo y gracias por vuestro tiempo y molestia

EDITO: alguno conoce algun manual de triggers de mysql?

Última edición por gnzsoloyo; 23/02/2013 a las 07:37 Razón: Codigo SQL mal etiquetado