Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/02/2010, 02:07
delapaz
 
Fecha de Ingreso: febrero-2010
Mensajes: 18
Antigüedad: 14 años, 3 meses
Puntos: 0
Error en los trigger

Tengo un pequeño problema a la hora de crear los trigger. Los creo a partir de una funcion previamente cerada y el error me lo da ahi, en la cabecera de la funcion, me dice que compruebe la sintaxis de la linea 1.
Si por el contrario, lo meto todo en el trigger, al ejecutarlo me da varios errores aunque son todos el mismo que el anterior.
El trigger es (os pongo el mas sencillo de todos):

CREATE OR REPLACE FUNCTION fnc_finalizar_tarea() RETURNS TRIGGER AS '
DECLARE
nficheros INTEGER;
BEGIN
SELECT COUNT(*) INTO nficheros
FROM ficheros f
WHERE f.cod_tarea = OLD.codigo;

IF nficheros >0 THEN
UPDATE tareas SET finalizado = true WHERE codigo = OLD.codigo;
ELSE
RAISE EXCEPTION "ERROR: No puede finalizar la tarea si no ha adjuntado un acta de la misma previamente.";
END IF;
RETURN NEW;
END;
' language 'plpgsql';

CREATE TRIGGER tgr_finalizar_tarea
BEFORE UPDATE ON tareas
FOR EACH ROW
EXECUTE PROCEDURE fnc_finalizar_tarea();


y el error que me produce es (que como digo, es siempre el mismo):

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right sintax to use near ' ...............' at line 1

gracias por vuestra ayuda.
saludos!!