Fwd: Duda FK

From: Juan Pablo Cook <juampick(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Fwd: Duda FK
Date: 2009-07-02 22:49:39
Message-ID: 90019f490907021549v7f95189ch875b9290aca9b0fd@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

---------- Forwarded message ----------
From: Juan Pablo Cook <juampick(at)gmail(dot)com>
Date: 2009/7/2
Subject: Re: [pgsql-es-ayuda] Duda FK
To: Lennin Caro <lennin(dot)caro(at)yahoo(dot)com>

Muchas gracias amigos por la respuesta, a ambos.
Sólo a Alvaro quería decirte que soy principiante, y no entiendo mucho
todavía de postgresql, creo que hay mejores formas de explicar y de tratar.
No te parece?

Creo que ahora lo tengo más claro, se puede modificar una FK? Sin tener que
borrarla y crearla nuevamente?
Por ejemplo, cambiar ON UPDATE RESTRICT,...

Muchas gracias desde ya.

JP Cook

2009/7/2 Lennin Caro <lennin(dot)caro(at)yahoo(dot)com>

> > From: Juan Pablo Cook <juampick(at)gmail(dot)com>
> > Subject: [pgsql-es-ayuda] Duda FK
> > To: pgsql-es-ayuda(at)postgresql(dot)org
> > Date: Thursday, July 2, 2009, 6:03 PM
> > Hola Amigos, quería consultarles
> > porque cuando hago una FK, por ejemplo:
> >
> > ALTER TABLE <tabla> ADD FOREIGN KEY(<atributo>)
> > REFERENCES <tabla>
> >
> > En la definición queda expresado así:
> >
> > ALTER TABLE accesorio
> >
> > ADD CONSTRAINT fk_accesorio_marca FOREIGN KEY (marca)
> > REFERENCES marca (codigo) MATCH SIMPLE
> > ON UPDATE NO ACTION ON DELETE NO ACTION;
> >
> > Por lo cual un profesor me dijo que de esta forma me va a
> > dejar borrar las cosas "enganchadas" con mi tabla.
> >
> >
> > Hice la prueba, pero, como tendría que ser, no me deja
> > borrar una tupla donde, la misma es usada por otras tablas.
> > Esta persona me dijo que tendrían que crearse así:
> >
> > ALTER TABLE accesorio
> >
> > ADD CONSTRAINT fk_accesorio_marca FOREIGN KEY (marca)
> >
> > REFERENCES marca (codigo) MATCH SIMPLE
> >
> > ON UPDATE RESTRICT ON DELETE RESTRICT;
> >
> > Yo lo que leí es que:
> >
> > NONE: no hacer nada.
> > RESTRICT: no permitir.
> > CASCADE: hacer en cascada.
> >
> > Por lo cual no comprendo bien la diferencia, porque en el
> > 1er caso donde no tengo especificada acción, igualmente no
> > deja eliminar.
> >
> >
> > Espero me puedan ayudar.
> >
> > Muchas gracias
> >
> > JP Cook
> >
>
> NO ACTION es la opcion por omision y su mayor caracteristicas es que puedes
> aplazar el chequeo de la consistencia.
>
> RESTRICT es igual que NO ACTION pero no se puede aplazar el chequeo.
>
> Ya las demas opciones tienes caracteristicas muy especificas
>
> espero te ayude .....
>
>
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2009-07-02 22:50:04 Re: paquete postgresql 8.4 debian
Previous Message Reynier Pérez Mira 2009-07-02 22:46:08 Re: paquete postgresql 8.4 debian