[pgsql-ayuda] triggers

Manuel Sugawara masm@fciencias.unam.mx
22 Aug 2001 11:47:08 -0500


"Mario Oroz" <jmoroz@uol.com.ar> writes:

> > create table clientes (
> >     codigo varchar(10) nor null primary key,
> >      nombre varchar(40)
> > );
> >
> > create table facturas (
> >     numero int4 not null primary key,
> >     fecha date,
> >     cliente varchar(10) references clientes,
> >     ....
> > );
> >

pon en la definici=F3n de facturas algo como:

    cliente varchar(10) references clientes ON UPDATE CASCADE,

y postgeSQL lo hace por ti. (hint: las p=E1ginas de manual son tus
amigas: man l create_table)

Saludos,
Manuel.

> > Si hago lo anterior me crea unos triggers sin nombre con unas funciones
> > extra=F1as que he deducido tengo que crear. Lo que pretendo es que cuan=
do
> > cambie el codigo del cliente en su tabla correspondiente se me cambie
> > tambien en la tabla de facturas. Supongo que la funcione que se ejecuta
> > en el triger es la siguiente:
> >
> > create function cambiocliente (varchar, varchar) returns bool as '
> >      update facturas set cliente =3D $2 where cliente =3D$1;
> >     select 1;
> > ' language 'sql';
> >
> > Pues no logro que funcione. Evidentemente no estoy entendiendo algo pero
> > por mas que consulto los manuales, traducidos o no, no me aclaran nada
> > mas all=E1 de lo que estoy exponiendo.
>=20
> > >NOOOOOO.
>=20
> > >La llave primaria debe ser respetada como la ni=F1a de tus ojos!
>=20
> * * *
> Hola!!
> Bueno ... lograron confundirme...:
>=20
> No era que el trigger que crea al momento de "armar" las referencias son =
en
> efecto los que me permitiran modificar (en el caso del cliente con sus fa=
cturas
> y ya se *yo tampoco cambiaria una llave primaria ...pero....*) el id de c=
liente
> de juan perez de 45 al 890 y que automaticamente el trigger me actualice =
ese id
> referenciado en  cada factura?
> A este punto me dirijo y quiero sacarme esa duda? por cualquier otra cosa=
 o mala
> interpretacion por mi parte ...estoy abierto, i=B4m opennn, a que me corr=
ijan y
> expliquen.
>=20
> Mario O. - Argentina
> Usuario de Linux no registrado! ;)
>=20
>=20
>=20
>=20
> _______________________________________________
> Pgsql-ayuda mailing list
> Pgsql-ayuda@tlali.iztacala.unam.mx
> http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda