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

Dependencias entre tablas MySQL (Eliminar y Actualizar)

Estas en el tema de Dependencias entre tablas MySQL (Eliminar y Actualizar) en el foro de Bases de Datos General en Foros del Web. Hola a todos. Tengo un problema con mi aplicación MySQL. Por un lado tengo una tabla asignaturas y otra recursos . En otra tabla guardo ...
  #1 (permalink)  
Antiguo 24/01/2005, 05:48
Avatar de redlor  
Fecha de Ingreso: noviembre-2004
Ubicación: Sevilla
Mensajes: 42
Antigüedad: 20 años, 2 meses
Puntos: 0
Exclamación Dependencias entre tablas MySQL (Eliminar y Actualizar)

Hola a todos. Tengo un problema con mi aplicación MySQL.

Por un lado tengo una tabla asignaturas y otra recursos. En otra tabla guardo las relaciones asignatura-recurso (donde se relaciona el índice de una o varias asignaturas con el de un o varios recursos), de forma que un recurso puede estar asociado a más de una signatura. Todas son del tipo MyIsam.

Si elimino una signatura, obviamente elimino la relación asignatura-recurso en esa BD que he comentado. Pero si se diera el caso que ese recurso sólo está asignado a esa asignatura, me gustaría eliminarlo tb de la BD de recursos.

Le he dado muchas vueltas y no consigo sacar una sentencia de eliminación q diga: "Elimina los recursos que no tengan ninguna instancia en la tabla asignatura-recurso".

Podeis echarme un mano????? Gracias
  #2 (permalink)  
Antiguo 24/01/2005, 07:20
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 5 meses
Puntos: 2
Si usas una versión de mysql que te admita subselects:
Código:
delete from recursos 
where not exists (select idrecurso from asignaturas_recursos b where b.idrecurso=recursos.idrecurso)
sino te admite las subselects tendrás que programártelo.
Un saludo.
__________________
Estoy contagiado de Generación-I
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 01:06.