uno de equipos de futbol

kano
31 de Octubre del 2002
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

marc
31 de Octubre del 2002
delete from pais
where pais not in (select pais from equipo, barrio, ciudad, pais where barrio=barrio and ciudad = ciudad and pais=pais)


kano
31 de Octubre del 2002
funciona bien, pero sale esto : Integrity Constraint Violation...
Existe alguna forma de borrar "en cascada" ?
O deberia borrar todo manualmente ?

marc
31 de Octubre del 2002
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