[ SQL ] Commande DELETE... CASCADE [Résolu/Fermé]

Signaler
-
 salhi -
Bonjour à tous,
J'ai un petit problème concernant une requete SQL
D'abord voici ce qu'on me demande :

Supprimer tout client ayant au moins un film en sa possession depuis + de 6 mois (Il faut d'abord supprimer les entrées dans toutes les tables qui contiennent une référence au clients supprimés).

Et voici ce que j'ai fait :

DELETE FROM Client
WHERE Login =
(SELECT L.Login
FROM Client C, Location L
WHERE C.Login = L.Login
AND MONTHS_BETWEEN (DateEnvoi, SYSDATE) > 6
AND DateRetour IS NULL) ;

Cette requete traite la 1ere partie du problème
Mais je n'arrive pas a traiter ce qui est demandé entre parentheses... (suppression en cascade...)
La commande DELETE CASCADE FROM CLIENT n'existe pas...
Y a t-il un moyen pour le faire ?
Ou bien est ce que ce traitement est fait automatiquement à partir du moment où la table a été créee avec la condition ON DELETE CASCADE ?

Merci d'avance,

Jon301

2 réponses

Hello,

Pour info, la commande suivante fonctionne:

delete from Table1 cascade where ......

A+

Serge
17
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Bonjour,

Si t'as des problèmes avec :

"MONTHS_BETWEEN (DateEnvoi, SYSDATE) > 6 "

alors utilise:

(TO_CHAR(SYSDATE, 'YYYYMM') - (TO_CHAR (DateEnvoi, 'YYYYMM')) > 6)


Si tu remarques je tiens compte de l'année aussi, car janvier 2004 et février 2005 il y a 13 mois, si tu regardes que le mois il te retourneras 1.

De plus, pour supprimer un enrégistrement et que sa suppression se répercute dans dans les autres table lié par "REFERENCES" alors il te faut apporter une modification sur table avec "ON DELETE CASCADE". Avvec cette fonction la suppression se fera dans toute les table lié.


Cire
Messages postés
40
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
26 mars 2013
15
Bonjour,

Je souhaite écrire un script SQL qui vide les tables de ma base de données.
Mon problème est que la commande DELETE FROM matable; retourne une erreur quand matable contient une clef primaire associée à une clef étrangère d'une autre table. Comment apporter une modification sur table avec "ON DELETE CASCADE" ?
Configuration :
PostgreSQL v8.2.5
pgAdmin III v1.6
Windows XP Pro SP2

a+, =)
-=Finiderire=-
>
Messages postés
40
Date d'inscription
vendredi 19 janvier 2007
Statut
Membre
Dernière intervention
26 mars 2013

mme prb
je voudrai l'instruction complete pour utiliser on delete cascade sur une table qui possede une clé étrangere