[Kde-devel-es] consulta a MySql

Albert Astals Cid tsdgeos at terra.es
Sun Nov 7 09:07:28 CET 2004


SQL de verdad:

Delete from clientes where id = :id on cascade; (o algo similar no lo he 
comprobado y no lo recuerdo perfectamente)

Como dudo que mysql soporte eso (usa postgres ;-)) me parece que no te va a 
quedar mas opcion que

Select idobra from obras where idcliente = :id

Mientras haya idobras
	Delete from tareas where idobra= :idobra

Delete from obras where idcliente = :id
Delete from cliente where id = :id

Si te fijas en la sintaxis del delete realmente no puede ir nada util (como tu 
intentas) etnre el delete y el from.

Albert

A Dissabte 06 Novembre 2004 14:34, Guillem Barba va escriure:
> Hola,
>
> tengo un problema y no sé como solucionarlo. Es de MySql.
>
> Mi programa usa una base de datos que tiene (entre otras) tres tablas
> llamadas (y que contienen información sobre): clientes, obras y tareas, que
> están relacionadas (una obra _es de_ un cliente, y una tarea _es de_ una
> obra). Cuando el usuario quiere eliminar un cliente si eliminan también sus
> obras y sus tareas (o tareas de sus obras). Para hacerlo uso la siguiente
> consulta SQL
>
> DELETE clientes, obras, tareas FROM clientes, obras, tareas WHERE
> tareas.idobra = obras.id AND obras.idcliente = clientes.id AND
> clientes.id= :id
>
> que me funciona de maravilla si hay, como mínimo, una otra y una tarea de
> dicho cliente, pero a la que no hay algo de esto, no funciona. He probado
> sustituyendo los AND por OR (todos, o sólo uno...) pero entonces me elimina
> TODO lo de aquella tabla. Cómo lo puedo hacer para que funcione?
>
> El servidor MySql que uso es "mysql  Ver 12.22 Distrib 4.0.21, for
> pc-linux-gnu (i386)" bajo Debian Sarge, y para hacer las consultas uso un
> objeto QSqlQuery de las Qt 3.3
>
> No me interesa poner la versión 4.1 que soporta subconsultas pues el
> programa es para una empresa (pequeña) y prefiero no ponerle nada de
> unstable.
>
> a ver si a alguien se le ocurre como hacerlo.
>
> No pongo el código SQL que uso para crear las tablas pq creo que no hace
> falta, pero si sí, me lo decís y lo envío. Los IDs de cada tablas són
> UNSIGNED INTEGER y a las tablas que se relacionan les pongo:
> FOREIGN KEY (idcliente) REFERENCES clientes
>
> saludos!!
>
> guillemBarba
> _______________________________________________
> Kde-devel-es mailing list
> Kde-devel-es at kde.org
> https://mail.kde.org/mailman/listinfo/kde-devel-es


More information about the Kde-devel-es mailing list