2 FKs a la misma tabla

05/06/2006 - 18:04 por spakinz | Informe spam
Hola, me ha surgido un problema al crear un par de FKs en 2005:

Tengo una tabla de paises (id, nombre) y una tabla de directores de
peliculas en la que tengo que almacenar el pais donde nacen y el pais
donde
mueren. Estos campos pueden ser null. He creado un par de indices en
estos
campos y he intentado crear un par de FKs entre la tabla de directores
y la
de paises (uno para el pais donde nacen y otro para el pais donde
mueren)
especificando ON DELETE SET NULL en cada uno de ellos. Cuando intento
guardar, me aparece el
siguiente error:

- Unable to create relationship 'FK_Directores_Paises1'.
Introducing FOREIGN KEY constraint 'FK_Directores_Paises1' on table
'Directores' may cause cycles or multiple cascade paths. Specify ON
DELETE
NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY
constraints.
Could not create constraint. See previous errors.

Hay varias soluciones a esto, pero la cuestión es ¿porqué no se
puede hacer? Parece algo lógico y que debería poder hacerse.

Espero vuestras opiniones.

Saludos.

Rubén López.
 

Leer las respuestas

#1 Jorge Gonzalez
06/06/2006 - 17:17 | Informe spam
Rubén,

Ese problema se da cuando la actualización implícita en la relación entre
las tablas, desencadenaría otra actualización del mismo tipo y que entra en
conflicto con dichas tablas implicadas. En tu caso, hasta donde lo
describís, parece no existir problema, pero si mandaras un diagrama de las
tablas quizás te podría dar una opinión sobre porqué no estás logrando
establecer el constraint.

Ahora, te pregunto... porqué querrías eliminar un país y sobre todo si este
ya tiene registros relacionados?

Ten cuidado con este tipo de clausulas que son de cierta manera
"peligrosas".

saludos
Jorge González


"spakinz" escribió en el mensaje
news:
Hola, me ha surgido un problema al crear un par de FKs en 2005:

Tengo una tabla de paises (id, nombre) y una tabla de directores de
peliculas en la que tengo que almacenar el pais donde nacen y el pais
donde
mueren. Estos campos pueden ser null. He creado un par de indices en
estos
campos y he intentado crear un par de FKs entre la tabla de directores
y la
de paises (uno para el pais donde nacen y otro para el pais donde
mueren)
especificando ON DELETE SET NULL en cada uno de ellos. Cuando intento
guardar, me aparece el
siguiente error:

- Unable to create relationship 'FK_Directores_Paises1'.
Introducing FOREIGN KEY constraint 'FK_Directores_Paises1' on table
'Directores' may cause cycles or multiple cascade paths. Specify ON
DELETE
NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY
constraints.
Could not create constraint. See previous errors.

Hay varias soluciones a esto, pero la cuestión es ¿porqué no se
puede hacer? Parece algo lógico y que debería poder hacerse.

Espero vuestras opiniones.

Saludos.

Rubén López.

Preguntas similares