| From: | Ricardo Mercado <rmercado(at)dportales(dot)cl> | 
|---|---|
| To: | Leonel Nunez <postgres(at)enelserver(dot)com> | 
| Cc: | Postgres <pgsql-es-ayuda(at)postgresql(dot)org> | 
| Subject: | Re: Problema con trigger | 
| Date: | 2004-06-01 20:56:37 | 
| Message-ID: | 1086123397.999.9.camel@ricardo | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
Usa algo como esto.
CREATE TABLE modelo (
    co_modelo integer,
    co_campo  integer,
    PRIMARY KEY (co_modelo,co_campo)
);
CREATE TABLE det_modelo (
    co_modelo integer REFERENCES modelo ON DELETE ON DELETE CASCADE,
    co_campo integer,
    PRIMARY KEY (campox, campoy)
);
El postgres sólo con esta definición creará un trigger que controlará el
borrado.
Suerte.
El mar, 01-06-2004 a las 13:21, Leonel Nunez escribió:
> On Tue, 2004-06-01 at 10:53, Mario Soto wrote:
> > Hola lista, tengo un problema:
> > 
> > tengo 2 tablas modelo y detmodelo:
> > 
> > ambas tienen los campos co_modelo y co_campo;
> > 
> > cuando borro un registro en la tabla modelo, tambien quiero que se
> > borren los registros en la tabla detmodelo, para lom cual he crado un
> > triger para la table modelo:
> > 
> > CREATE TRIGGER "delete_desmodelo" BEFORE DELETE
> > ON "public"."modelo" FOR EACH ROW
> > EXECUTE PROCEDURE "public"."sp_delete_desmodelo"();
> > 
> > 
> > 
> >  y el procedure es:
> > 
> > 
> > 
> > CREATE OR REPLACE FUNCTION "public"."sp_delete_desmodelo" () RETURNS
> > trigger AS'
> > begin
> >   /* New function body */
> >   delete from detmodelo
> >   where co_modelo = old.co_modelo and co_campo = old.co_campo;
> > 
> >   return null;
> > end;
> > 'LANGUAGE 'plpgsql' IMMUTABLE CALLED ON NULL INPUT SECURITY INVOKER;
> > 
> > 
> > El problema es que no me elimina nada:
> > 
> > Alguna idea.
> > 
> > Gracias
> > 
> > 
> > 
> > 
> > ---------------------------(end of broadcast)---------------------------
> > TIP 5: ¿Has leído nuestro extenso FAQ?
> > 
> >                http://www.postgresql.org/docs/faqs/FAQ.html
> > 
> 
> 
> y si en vez de trigger usas un 
> 
> ON DELTE CASCADE ?
> mas info en :
> 
> http://www.postgresql.org/docs/7.4/static/ddl-constraints.html#AEN1895
> 
> 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Josué Maldonado | 2004-06-01 21:01:24 | Re: administrador de postgres | 
| Previous Message | Fernando Papa | 2004-06-01 20:48:40 | Re: administrador de postgres |