From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar> |
Cc: | Lista Ayuda Pgsql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Trigger con consulta sql a otra tabla |
Date: | 2005-06-01 17:51:08 |
Message-ID: | c2d9e70e0506011051517b1fb3@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 6/1/05, Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar> wrote:
> Hola mis amigos. Una pregunta. ¿Cómo podría hacer un trigger que antes de
> actualizar un campo numérico de una tabla(t1), si el nuevo valor del campo es
> mayor que el campo numérico de otra tabla(t2), ponga el valor del campo de t2?.
>
> En caso que el nuevo valor del campo de t1 sea menor o igual al campo de t2,
> el update debería hacerse. Es decir, el campo de t1 tiene que ser siempre como
> máximo igual al campo de t2.
>
> El trigger sería sobre t1 y lo quiero hacer en plpgsql, pero no sé cómo
> igualar el new.campo con el valor de un "select campoNumerico from t2 where
> new.referenciaDet1at2 = id_t2". Espero que se entienda. Tengo Postgres 8.03 en
> linux. Un gran saludo...
> -
create function foo() returns trigger as '
declare
campo int;
begin
select campoNumerico into campo from t2 where id_t2 =
new.referenciaDet1at2;
if new.campo_t1 > campo then
new.campo_t1 := campo;
end if;
return new;
end; '
language 'plpgsql';
puede ser que me falte algo pero la idea es esa...
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From | Date | Subject | |
---|---|---|---|
Next Message | Juan Pablo Espino | 2005-06-01 18:39:40 | Re: RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Comparación entre DBMSs de codigo abierto |
Previous Message | Ing. Jhon Carrillo - Caracas, Venezuela | 2005-06-01 17:35:43 | unsubscribe |