Re: Ayuda con un Trigger

From: Rubén da Silva <ruben(at)ozonomultimedia(dot)com>
To: Postgres <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda con un Trigger
Date: 2006-08-18 18:24:30
Message-ID: 44E605DE.2060809@ozonomultimedia.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Miguel wrote:
> Qué tal tengo estas tablas.
>
>
>
> CREATE TABLE empleado(id_empleado SERIAL NOT NULL UNIQUE, paterno
> varchar NOT NULL, materno varchar, nombre varchar NOT NULL, ingreso date
> NOT NULL, puesto varchar, sueldo_mensual float NOT NULL, activo boolean
> NOT NULL, PRIMARY KEY(nombre, paterno, materno));
>
>
>
> CREATE TABLE gastos_empleado(id_gasto SERIAL NOT NULL UNIQUE, no_poliza
> integer NOT NULL UNIQUE, id_empleado integer NOT NULL references
> empleado(id_empleado), fecha date NOT NULL, monto float NOT NULL,
> id_proyecto integer NOT NULL references proyecto(id_proyecto), PRIMARY
> KEY(no_poliza));
>
>
>
> Y quiero crear un trigger que no me permita ingresar a un empleado que
> no este activo en ese momento a la tabla gastos empleado, pero no se
> como decirle a Postgres eso, este es mi trigger:
>
>
>
> CREATE OR REPLACE FUNCTION empleado_activo() RETURNS TRIGGER AS $$
>
> BEGIN
>
> IF (NEW.id_empleado NOT IN (SELECT id_empleado FROM empleado WHERE
> activo='TRUE') THEN
>
> RAISE EXCEPTION 'No se puede meter un gasto para este empleado. Este
> no se encuentra activo.';
>
> END IF;
>
> RETURN NULL;
>
> END;
>
> $$ LANGUAGE plpgsql;
>
>
>
> CREATE TRIGGER empleado_activo BEFORE INSERT OR UPDATE ON
> gastos_empleado FOR EACH ROW EXECUTE PROCEDURE empleado_activo();
>
>
>
> Es la primera vez que hago un trigger así que comprendan que todavía no
> si se el IF sea correcto; ya que postgres me manda este error:
>
>
>
> ERROR: mismatched parentheses
>
> CONTEXT: compile of PL/pgSQL function "empleado_activo" near line 2
>
>
>
Por el error veo que te falta un cierre de parentesis en el IF (abres 2
cierras 1). O metes uno más al final o sacas el primero.
Luego di si te sigue dando error.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Felipe Fernandez 2006-08-18 18:28:11 Re: Conexiones externas a V 8.1 en windows
Previous Message Miguel 2006-08-18 18:02:20 Ayuda con un Trigger