bonjour,
je voudrais savoir si c'est mieux de faire un curseur pour chercher un identifiant qu'on va utiliser dans 2 requetes de type update et 1 requete de type insert ou c'est mieux si à chaque requete, je fais un select pour le chercher.
Merci,
bonjour,
je voudrais savoir si c'est mieux de faire un curseur pour chercher un identifiant qu'on va utiliser dans 2 requetes de type update et 1 requete de type insert ou c'est mieux si à chaque requete, je fais un select pour le chercher.
Merci,
bah évidemment c'est mieux de lancer la requête une seule fois
Sinon, tu as MERGE qui fait Update ou Insert en 1 fois.
Merci pour vos réponses mais je penses que j'étais pas assez clair:
La requete Update et insert ne sont pas sur la même table c'est juste que la requete pour chercher l'identifiant est la même (j'ai fait un curseur pour pouvoir l'utiliser dans les différentes requetes).
alors est-ce que c'est mieux de dire:
1) cursor c is select ID from T where..;
open c;...
fetch c into variable;...
insert into T1 values (variable);
Update T2 set chp = variable;
2) insert into T1 values (select ID from T where..);
Update T2 set chp = select ID from T where ..;
Merci
Je dirais le 2 si la requete sur T n'est pas super longue, mais vu qu'elle ne ramène qu'une ligne, ça doit aller.
Attention : Pas de insert values (select from)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 insert into T1 select ID from T where..; Update T2 set chp = select ID from T where ..;
Merci mais ce que je comprends qu'il faut jamais faire insert values (select fom ) quand j'ai une longue requete select plus que s'il y a bcp de lignes à insérer...
J'ai cru que c'est le contraire.
Partager