Update selectif entre 2 tables
Fermé
maestro1303
Messages postés
37
Date d'inscription
mardi 18 juillet 2006
Statut
Membre
Dernière intervention
7 décembre 2019
-
29 janv. 2014 à 15:31
Killburns911 Messages postés 293 Date d'inscription lundi 27 janvier 2014 Statut Membre Dernière intervention 25 avril 2023 - 31 janv. 2014 à 08:49
Killburns911 Messages postés 293 Date d'inscription lundi 27 janvier 2014 Statut Membre Dernière intervention 25 avril 2023 - 31 janv. 2014 à 08:49
A voir également:
- Update selectif entre 2 tables
- Supercopier 2 - Télécharger - Gestion de fichiers
- Windows update bloqué - Guide
- Asus live update - Télécharger - Utilitaires
- Tables des matières word - Guide
- Winget update - Guide
6 réponses
Killburns911
Messages postés
293
Date d'inscription
lundi 27 janvier 2014
Statut
Membre
Dernière intervention
25 avril 2023
15
29 janv. 2014 à 15:48
29 janv. 2014 à 15:48
As tu penser a utiliser les Déclencheurs ?
ou des triggers ( version anglaise )???
en gros tu as quelques trucs a savoir
Instead of [Insert , Update , Delete]<--- Au lieu de
Faire tes test
Exécuter le résultat de tes tests
et a chaque fois que tu effectueras une opération de ce type, cela le feras automatiquement
exemple
Instead Of Insert
if A.T1 = A.T2
Insert into (....)
Values (....)
a chaque fois que tu feras une requête de type Insert dans ta base , vis a vis des tables concernées , la requête passeras d'abord par le declancheur avant d'être traité
Si je n'ai pas répondu a ta question ou que tu souhaite plus d'information , n'hésite pas :D
ou des triggers ( version anglaise )???
en gros tu as quelques trucs a savoir
Instead of [Insert , Update , Delete]<--- Au lieu de
Faire tes test
Exécuter le résultat de tes tests
et a chaque fois que tu effectueras une opération de ce type, cela le feras automatiquement
exemple
Instead Of Insert
if A.T1 = A.T2
Insert into (....)
Values (....)
a chaque fois que tu feras une requête de type Insert dans ta base , vis a vis des tables concernées , la requête passeras d'abord par le declancheur avant d'être traité
Si je n'ai pas répondu a ta question ou que tu souhaite plus d'information , n'hésite pas :D
maestro1303
Messages postés
37
Date d'inscription
mardi 18 juillet 2006
Statut
Membre
Dernière intervention
7 décembre 2019
1
29 janv. 2014 à 16:18
29 janv. 2014 à 16:18
Merci beaucoup de cette réponse,
Tout d'abord je serai vraiment ravi d'apprendre les triggers à travers cet exemple, mais je ne connais rien des triggers, je suis obligé de solliciter ton aide et éventuellement celle des membres de ce forum.
Merci d'avance
--
Tout d'abord je serai vraiment ravi d'apprendre les triggers à travers cet exemple, mais je ne connais rien des triggers, je suis obligé de solliciter ton aide et éventuellement celle des membres de ce forum.
Merci d'avance
--
Killburns911
Messages postés
293
Date d'inscription
lundi 27 janvier 2014
Statut
Membre
Dernière intervention
25 avril 2023
15
29 janv. 2014 à 16:29
29 janv. 2014 à 16:29
Un Trigger , qu'est ce que c'est ?
c'est une requete ( ou suite de requête ) qui vas se declancher ( trigger ) en anglais , au moment ou , selon ce que je t'ai dis plus haut , tu vas effectuer une action sur les tables concernée
si tu as une table t1 , une autre table t2
T1(idnom
T2(id#nom
quand tu vas écrire une requête , tu vas l'écrire comme ceci
Select ....
From T1 , T2
Where T1.Nom=T2.Nom
Dans un Trigger , c'est la meme chose :D sauf que cela se fais en " cascade "
CREATE OR ALTER TRIGGER // Crée ou Modifier le Trigger
[BEFORE] Ou [INSTEAD OF] INSERT OR UPDATE ON // Avant de , ou Au lieu de
[
Si A=A
]
BEGIN //Alors
[
Endroit ou tu exécute une requête //Exécution de la requête
]
END;
[
Etsi A=B
]
BEGIN //Alors
[
Endroit ou tu exécute une requête
]
c'est une requete ( ou suite de requête ) qui vas se declancher ( trigger ) en anglais , au moment ou , selon ce que je t'ai dis plus haut , tu vas effectuer une action sur les tables concernée
si tu as une table t1 , une autre table t2
T1(idnom
T2(id#nom
quand tu vas écrire une requête , tu vas l'écrire comme ceci
Select ....
From T1 , T2
Where T1.Nom=T2.Nom
Dans un Trigger , c'est la meme chose :D sauf que cela se fais en " cascade "
CREATE OR ALTER TRIGGER // Crée ou Modifier le Trigger
[BEFORE] Ou [INSTEAD OF] INSERT OR UPDATE ON // Avant de , ou Au lieu de
[
Si A=A
]
BEGIN //Alors
[
Endroit ou tu exécute une requête //Exécution de la requête
]
END;
[
Etsi A=B
]
BEGIN //Alors
[
Endroit ou tu exécute une requête
]
maestro1303
Messages postés
37
Date d'inscription
mardi 18 juillet 2006
Statut
Membre
Dernière intervention
7 décembre 2019
1
29 janv. 2014 à 23:31
29 janv. 2014 à 23:31
Bonjour,
Comme j'ai dit je connais rien aux triggers, mais ça doit ressembler à ça (à un trigger près !)
create trigger t1t2
if t1.id=t2.id then
if t1.c1='555' and t2.c1<>'555'
update t1 set c1= t2.c1
endif
if t1.c2='555' and t2.c2<>'555'
update t1 set c2= t2.c2
endif
if t1.c3='555' and t2.c3<>'555'
update t1 set c3= t2.c3
endif
if t2.c1< t1.c1
update t1 set c1= t2.c1
endif
if t2.c2< t1.c2
update t1 set c2= t2.c2
endif
if t2.c3< t1.c3
update t1 set c3= t2.c3
endif
Endif
Merci trigger(mais comme je ne connais pas la syntaxe...
Merci infiniment de votre aide à l'avance.
--
Comme j'ai dit je connais rien aux triggers, mais ça doit ressembler à ça (à un trigger près !)
create trigger t1t2
if t1.id=t2.id then
if t1.c1='555' and t2.c1<>'555'
update t1 set c1= t2.c1
endif
if t1.c2='555' and t2.c2<>'555'
update t1 set c2= t2.c2
endif
if t1.c3='555' and t2.c3<>'555'
update t1 set c3= t2.c3
endif
if t2.c1< t1.c1
update t1 set c1= t2.c1
endif
if t2.c2< t1.c2
update t1 set c2= t2.c2
endif
if t2.c3< t1.c3
update t1 set c3= t2.c3
endif
Endif
Merci trigger(mais comme je ne connais pas la syntaxe...
Merci infiniment de votre aide à l'avance.
--
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
maestro1303
Messages postés
37
Date d'inscription
mardi 18 juillet 2006
Statut
Membre
Dernière intervention
7 décembre 2019
1
30 janv. 2014 à 00:47
30 janv. 2014 à 00:47
Bonjour,
Je demande pardon car je n'ai pas pu modifier mon message prédédent
Comme j'ai dit je connais rien aux triggers, mais ça doit ressembler à ça (à un trigger près !)
create trigger t1t2
Begin
[
Begin
[
if t1.id=t2.id then
if t1.c1='555' and t2.c1<>'555'
update t1 set c1= t2.c1
delete from t2 where t2.id=ID
endif
if t1.c2='555' and t2.c2<>'555'
update t1 set c2= t2.c2
delete from t2 where t2.id=ID
endif
if t1.c3='555' and t2.c3<>'555'
update t1 set c3= t2.c3
delete from t2 where t2.id=ID
endif
]
END;
Begin
[
if t2.c1< t1.c1
update t1 set c1= t2.c1
delete from t2 where t2.id=ID
endif
if t2.c2< t1.c2
update t1 set c2= t2.c2
delete from t2 where t2.id=ID
endif
if t2.c3< t1.c3
update t1 set c3= t2.c3
delete from t2 where t2.id=ID
endif
Endif
]
END;
]
END;
Je vous prie de bien vouloir guider mes pas afin de pouvoir y arriver
Merci infiniment de votre aide à l'avance.
Je demande pardon car je n'ai pas pu modifier mon message prédédent
Comme j'ai dit je connais rien aux triggers, mais ça doit ressembler à ça (à un trigger près !)
create trigger t1t2
Begin
[
Begin
[
if t1.id=t2.id then
if t1.c1='555' and t2.c1<>'555'
update t1 set c1= t2.c1
delete from t2 where t2.id=ID
endif
if t1.c2='555' and t2.c2<>'555'
update t1 set c2= t2.c2
delete from t2 where t2.id=ID
endif
if t1.c3='555' and t2.c3<>'555'
update t1 set c3= t2.c3
delete from t2 where t2.id=ID
endif
]
END;
Begin
[
if t2.c1< t1.c1
update t1 set c1= t2.c1
delete from t2 where t2.id=ID
endif
if t2.c2< t1.c2
update t1 set c2= t2.c2
delete from t2 where t2.id=ID
endif
if t2.c3< t1.c3
update t1 set c3= t2.c3
delete from t2 where t2.id=ID
endif
Endif
]
END;
]
END;
Je vous prie de bien vouloir guider mes pas afin de pouvoir y arriver
Merci infiniment de votre aide à l'avance.
Killburns911
Messages postés
293
Date d'inscription
lundi 27 janvier 2014
Statut
Membre
Dernière intervention
25 avril 2023
15
30 janv. 2014 à 13:15
30 janv. 2014 à 13:15
Ouai ouai , c'est l'idée , apres tu n'a plus qu'a appliqué ca a ta Base De Donnée et en avant ^^
maestro1303
Messages postés
37
Date d'inscription
mardi 18 juillet 2006
Statut
Membre
Dernière intervention
7 décembre 2019
1
30 janv. 2014 à 19:42
30 janv. 2014 à 19:42
Bonjour Killburns911 ,
Devant mon ignorance des triggers et de leur syntaxe, je suis bloqué/perdu.
Pourrais tu donner un coup de pouce STP.
Merci d'avance.
--
Devant mon ignorance des triggers et de leur syntaxe, je suis bloqué/perdu.
Pourrais tu donner un coup de pouce STP.
Merci d'avance.
--
Killburns911
Messages postés
293
Date d'inscription
lundi 27 janvier 2014
Statut
Membre
Dernière intervention
25 avril 2023
15
31 janv. 2014 à 08:49
31 janv. 2014 à 08:49
Bien sur , envoie moi les requêtes que tu veux inscrire dans ta base de données , et je le ferais :D sans aucun souci :D
En message privé histoire de pas gener les utilisateur , ou alors avec le site
https://www.cjoint.com/
En message privé histoire de pas gener les utilisateur , ou alors avec le site
https://www.cjoint.com/