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
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 |