Duda FK

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

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

Responses

  • Re: Duda FK at 2009-07-02 19:10:44 from Alvaro Herrera

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message juan 2009-07-02 18:41:15 Re: PostgreSQL 8.4 ha sido liberado, honor a quién honor merece
Previous Message Mario Soto Cordones 2009-07-02 17:01:01 RE: Notify/listen