joindre des periodes qui coincident dans une table [trigger] - SQL/NoSQL - Programmation
Marsh Posté le 15-02-2006 à 16:38:54
j'ai trouvé comment il fallait faire avec un trigger fter update :  
begin 
UPDATE PERIODE 
SET date_fin =  new.date_fin 
WHERE date_fin = new.date_debut 
AND id = new.id; 
end 
le probleme c'est que je ne vois pas comment supprimer ou annuler le nuplet que je viens d'inserer qui n'est donc plus valable.. 
j'avais essayé ça : 
DELETE FROM PERIODE 
WHERE id_resa = new.id_resa; 
juste apres dans le trigger after update mais ça m'efface toute mes insertion du coup ... evidement ! 
comment faire donc pour annuler ou effacer le dernier nuplet SI il y a eu une update de faite ?
Marsh Posté le 15-02-2006 à 18:34:39
DELETE FROM PERIODE  
WHERE id_resa = new.id_resa 
AND date_debut = new.date_debut; 
 
Mais attention de bien ajouter des conditions, pour ne joindre les dates (avec l'update) et faire l'effacement (delete) uniquement si on a effectivement le droit de joindre le dates (selon tes propres critères).
Marsh Posté le 16-02-2006 à 08:37:02
Je ne sais pas comment ajouter de conditions dan un trigger pour que l'effaceement ne s'effectue uniquement si un update a été fait ?
Marsh Posté le 16-02-2006 à 10:07:54
| Code : 
 | 
Marsh Posté le 14-02-2006 à 14:42:34
Je m'explique ! J'ai une table qui possede des periodes pour des salles. Je voudrais creer un trigger qui joind les periodes qui se 'touchent' automatiquement, apres insertion d'un nouvel enregistrement.
  automatiquement, apres insertion d'un nouvel enregistrement. 
par exemple il y a l'enregistrement :
salle debut fin
1 13/02/06 16/02/06
2 10/02/06 11/02/06
on rentre :
salle : 1 , debut : 16/02/06, fin : 18/02/06
et au lieu que ça donne :
salle debut fin
1 13/02/06 16/02/06
2 10/02/06 11/02/06
1 16/02/06 18/02/06
ça donne :
salle debut fin
1 13/02/06 18/02/06
2 10/02/06 11/02/06
est ce possible ?