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

Responder a