Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1356 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [trigger] joindre des periodes qui coincident dans une table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[trigger] joindre des periodes qui coincident dans une table

n°1305233
albertos
kikoo
Posté le 14-02-2006 à 14:42:34  profilanswer
 

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'  :sweat:  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 ?

mood
Publicité
Posté le 14-02-2006 à 14:42:34  profilanswer
 

n°1306017
albertos
kikoo
Posté le 15-02-2006 à 12:34:04  profilanswer
 

un pti up pour mon soucis ! :)

n°1306509
albertos
kikoo
Posté le 15-02-2006 à 16:38:54  profilanswer
 

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 ?

n°1306631
Beegee
Posté le 15-02-2006 à 18:34:39  profilanswer
 

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).

n°1306802
albertos
kikoo
Posté le 16-02-2006 à 08:37:02  profilanswer
 

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 ?

n°1306859
Beegee
Posté le 16-02-2006 à 10:07:54  profilanswer
 

Code :
  1. UPDATE PERIODE
  2. SET date_fin =  new.date_fin
  3. WHERE date_fin = new.date_debut
  4. AND id = new.id;
  5. IF (SQL%ROWCOUNT > 0)
  6. THEN
  7.   DELETE FROM PERIODE 
  8.   WHERE id_resa = new.id_resa
  9.   AND date_debut = new.date_debut;
  10. END IF;


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [trigger] joindre des periodes qui coincident dans une table

 

Sujets relatifs
[Access] Table avec texte attachéVerouiller une table
champs vides dans une table paradoxRelation,Fonction et table??
Table invisible dans requête access, possible?create table avec variable!
[ASP3] Alimenter une table access via une liste déroulanteProbleme avec taille du texte dans une table
trigger et macroRécupérer des imbrications multiples dans une table MySQL
Plus de sujets relatifs à : [trigger] joindre des periodes qui coincident dans une table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR