From: | Dan <danstreet(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Trigger INSERT _ UPDATE |
Date: | 2006-12-13 16:09:09 |
Message-ID: | 6f2857c50612130809g645bdbbrcbc4e32e958cfce8@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
buenos dias, tengo la sgt funcion, la idea es que cuando ingrese un dato en
la tabla "prueba", el campo "nro" se actualice con el valor maximo de
"nro+1". pero antes de poder insertar valido que en la tabla "cierre" el
campo "estado" sea true.
pero me sale el siguiente error: parse error at or near "updated"
espero su ayuda, gracias. ( version usada: PostgreSQL 7.2.2)
CREATE OR REPLACE FUNCTION "verifica_permisop" () RETURNS opaque AS'
DECLARE
estado boolean;
numero integer;
BEGIN
IF TG_OP = ''INSERT'' OR TG_OP = ''''UPDATED'''' THEN
SELECT status INTO estado FROM cierre WHERE anio=NEW.anio AND mes=
NEW.mes;
IF NOT found THEN --sino devuelve datos
return null;
ELSIF estado THEN --si esta cerrado ''t''
return null;
ELSE -- si esta abierto ''f''
SELECT max(nro) INTO numero FROM prueba WHERE anio=NEW.anio AND
mes=NEW.mes;
IF numero > 0 THEN
NEW.nro = numero + 1;
ELSE
NEW.nro = 1;
END IF;
''RETURN NEW;
END IF;
END IF;
END;
'LANGUAGE 'plpgsql';
-----------------------------------------
CREATE TRIGGER "verifica_permisop" BEFORE INSERT OR UPDATE
ON "prueba" FOR EACH ROW
EXECUTE PROCEDURE "verifica_permisop"();
--
-----------------
[) /-\ |\|
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel Ortega | 2006-12-13 16:23:18 | Re: Trigger INSERT _ UPDATE |
Previous Message | ricardo yanguma | 2006-12-13 16:00:34 | Re: numrow |