Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Foreign key en mysql

Estas en el tema de Foreign key en mysql en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/01/2009, 05:15
 
Fecha de Ingreso: enero-2009
Mensajes: 19
Antigüedad: 15 años, 3 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
  #2 (permalink)  
Antiguo 13/01/2009, 15:30
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Foreign key en mysql

Coloca como columna padre el valor no nulo sino en cero (0) y crea un registro adicional cuya clave primaria sea igual a cero = 0. y el padre de esta columna adicional hazlo igual a cero tambien
  #3 (permalink)  
Antiguo 14/01/2009, 05:38
 
Fecha de Ingreso: enero-2009
Mensajes: 19
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Foreign key en mysql

Muchas gracias por tu respuesta Webness... ya habia pensado una solucion asi... pero ya que estamos me gustaria saber si es posible utilizar claves foraneas y que se le puedan asignar un valor null

Un saludo a tod@s
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:10.