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

eliminar en cascada

Estas en el tema de eliminar en cascada en el foro de Mysql en Foros del Web. Tenia una bd en acces que he pasado a my sql.He creado claves foraneas para borrar y actualizar en cascada.Pero si borro un registro de ...
  #1 (permalink)  
Antiguo 27/12/2005, 04:44
 
Fecha de Ingreso: diciembre-2005
Mensajes: 2
Antigüedad: 18 años, 3 meses
Puntos: 0
eliminar en cascada

Tenia una bd en acces que he pasado a my sql.He creado claves foraneas para borrar y actualizar en cascada.Pero si borro un registro de la tabla principal las tablas con claves foraneas en vez de borrar solo los registros con el mismo valor en ese campo relaccionado me borra todos .Alguien sabria decirme por que me pasa esto.
  #2 (permalink)  
Antiguo 27/12/2005, 04:56
Avatar de jeubeda  
Fecha de Ingreso: octubre-2004
Ubicación: Argentino, en Valencia, E
Mensajes: 78
Antigüedad: 19 años, 5 meses
Puntos: 0
cómo declaras?

No conozco cómo Mysql trata el borrado de filas dependientes (algunos administradores lo pueden hacer automáticamente). ¿Qué ejecutas, o cómo declaras el destructor?
__________________
Jorge Ubeda
Página, Blog
  #3 (permalink)  
Antiguo 27/12/2005, 05:53
 
Fecha de Ingreso: diciembre-2005
Mensajes: 2
Antigüedad: 18 años, 3 meses
Puntos: 0
Información declaracion

tengo una tabla alumnos y varias tablas dependientes de ella.He ejecutado un alter table en las tablas dependientes para declarar las claves foraneas ejem.
("ALTER TABLE `gastos e ingresos` ADD FOREIGN KEY(`Nº ALUMNO`) REFERENCES `ALUMNOS`(`Nº ALUMNO`) ON DELETE CASCADE ON UPDATE CASCADE;").Creo una clave foranea en la tabla gastos e ingresos para que si se borra o actualiza el alumno en cuestion lo borre o actualice en la tabla gastos e ingresos. Luego ejecuto:
"delete from `alumnos` where `nº Alumno`=4000267;"

y borra todos los registros de la tabla ingresoso y gastos,ademas de los de las otras tablas relaccionadas
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 15:06.