|
|
|
|
[ SQL ] Commande DELETE... CASCADE
Dernière réponse le 12 jun 2008 à 13:48:45 Jon301, le 6 fév 2005 à 13:19:41Bonjour à 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
Bonjour,
(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
|

