Re: ayuda TRIGGER

From: Guillermo Villanueva <guillermovil(at)gmail(dot)com>
To: Henrry Joshney Servitá Sánchez <henser05(at)yahoo(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: ayuda TRIGGER
Date: 2010-06-10 12:46:52
Message-ID: AANLkTiljdK8QjyreIid0AKo7wiv5DApKWwYP8pJ3nsuU@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

no se mucho de plpgsql pero fijate que
NEW.item_id != NEW.item_id
nunca va a dar true
Otra tema: en un trigger que no sea del tipo "instead of" no tenés que
ejecutar la sentencia sobre la cual trabaja el trigger, ya que esta se
ejecuta sola si es que no hay un rollback.

Saludos
~~~~~~~~~~~~~~~
Guillermo Villanueva

2010/6/10 Henrry Joshney Servitá Sánchez <henser05(at)yahoo(dot)com>

> buenas tengo las siguientes tablas.
>
> CREATE TABLE item
> (
> item_id serial NOT NULL,
> description character varying(64) NOT NULL,
> cost_price numeric(7,2),
> sell_price numeric(7,2),
> CONSTRAINT item_pk PRIMARY KEY (item_id)
> )
> WITH (
> OIDS=FALSE
> );
>
> CREATE TABLE stock
> (
> item_id integer NOT NULL,
> quantity integer NOT NULL,
> CONSTRAINT stock_pk PRIMARY KEY (item_id)
> )
> WITH (
> OIDS=FALSE
> );
>
> estoy creando un trigger que me controle al momento de insertar un nuevo
> registro en la tabla item se inserte otro registro en la tabla stock con el
> campo item_id de la tabla iten y el quantity con el valor 0.
>
> esta es la funcion que cree
>
> CREATE OR REPLACE FUNCTION nuevo_producto() RETURNS trigger AS
> $BODY$
> declare
> codigo int;
> BEGIN
> if (TG_OP='INSERT' ) THEN
> IF (NEW.item_id != NEW.item_id) then
>
>
> INSERT INTO item VALUES (item_id,
> description,cost_price,sell_price);
>
> insert into stock values(item.item_id,0);
>
> ELSE
> RAISE NOTICE 'fallo';--, quantity; -- Prints 30
>
> END IF;
> end if;
> RETURN null;
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE;
>
> create trigger insertar_producto
> after insert on item
> for each row
> execute procedure nuevo_producto();
>
>
> espero que haya sido claro y puedan ayudarme muchas gracias.
>
> saludos
>
>
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>

In response to

  • ayuda TRIGGER at 2010-06-10 03:59:56 from Henrry Joshney Servitá Sánchez

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alfredo Rico 2010-06-10 12:48:45 Pregunta a los gurús de postgres.
Previous Message Guillermo Villanueva 2010-06-10 11:17:37 Re: ayuda TRIGGER