uno de equipos de futbol
tablas:
Equipo ( barrio )
Barrio ( barrio, ciudad )
Ciudad ( ciudad, pais )
Pais ( pais )
El problema dice : Borrar a los paises sin equipos de futbol.
primero creo que debo utilizar un "delete" de un "Not Exist" para ver si el pais tiene algún equipo de futbol...solo que no se como hacer en SQL
Equipo ( barrio )
Barrio ( barrio, ciudad )
Ciudad ( ciudad, pais )
Pais ( pais )
El problema dice : Borrar a los paises sin equipos de futbol.
primero creo que debo utilizar un "delete" de un "Not Exist" para ver si el pais tiene algún equipo de futbol...solo que no se como hacer en SQL
delete from pais
where pais not in (select pais from equipo, barrio, ciudad, pais where barrio=barrio and ciudad = ciudad and pais=pais)
where pais not in (select pais from equipo, barrio, ciudad, pais where barrio=barrio and ciudad = ciudad and pais=pais)
funciona bien, pero sale esto : Integrity Constraint Violation...
Existe alguna forma de borrar "en cascada" ?
O deberia borrar todo manualmente ?
Existe alguna forma de borrar "en cascada" ?
O deberia borrar todo manualmente ?
Supongo que aunque no tenga equipos, debe tener ciudades, etc ..
Al definir la foreign key, puedes anadir ON DELETE CASCADE y ya no hace falta comprobar nada, al borrar el pais, te borrar la ciudad y todo lo que cuelgue de ciudad y asi hasta el final.
Segun la Base de Datos puede variar la sintaxis del a creacion de la constraint, pero suele ser :
ALTER TABLE xxxx ADD CONSTRAINT nombreconstraint FOREIGN KEY (nombre campo, nombrecampo ...) REFERENCES nombretabla (nombrecampo, nombrecampo) ON DELETE CASCADE
Al definir la foreign key, puedes anadir ON DELETE CASCADE y ya no hace falta comprobar nada, al borrar el pais, te borrar la ciudad y todo lo que cuelgue de ciudad y asi hasta el final.
Segun la Base de Datos puede variar la sintaxis del a creacion de la constraint, pero suele ser :
ALTER TABLE xxxx ADD CONSTRAINT nombreconstraint FOREIGN KEY (nombre campo, nombrecampo ...) REFERENCES nombretabla (nombrecampo, nombrecampo) ON DELETE CASCADE
