Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2009, 05:15
superlopez82
 
Fecha de Ingreso: enero-2009
Mensajes: 19
Antigüedad: 15 años, 4 meses
Puntos: 0
Foreign key en mysql

Un saludo a tod@s los forer@s...

tengo una duda desde hace un par de dias y no se como resolverla... me explico:

tengo una tabla anidada, donde almaceno "categorias"...
los campos mas importantes son:
categoriaid (clave primaria)
padreid (guarda el id de su categoria padre y puede ser null, es decir, las categorias raices de las que parten todas tienen el padre puesto a null)

el caso es que quiero hacer actualizaciones y borrados en cascada... si borro la categoria id=1 borro todas las categorias que tienen el padre=1, y para actualizar tambien...

he creado la tabla, añadido un index, y he utilizado esta sentencia:
ALTER TABLE categoria ADD FOREIGN KEY(padreid) REFERENCES categoria(categoriaid) ON DELETE CASCADE ON UPDATE CASCADE;

la sentencia funciona y crea la clave foranea, pero luego no puedo insertar filas en las que la columna padreid sea null... es decir la clave foranea no me deja que sea null...

hay alguna forma de solventar este problema y realizar borrados y actualizaciones sobre una misma tabla???

Muchas gracias de antemano...

adioooo.com

Última edición por superlopez82; 13/01/2009 a las 05:35