Bonjour,
Au boulot, je travaille sur des tables DB2 partitionnées sur des colonnes qui ne composent pas la clef.
Résultat, pour une ligne du tableau, si je veux faire un UPDATE sur une colonne partitionnée, je dois faire un DELETE de la ligne puis un INSERT.
En clair
devientCode:UPDATE colonne1 FROM table WHERE clef = 'tintin'
Quand je le fais sur une seule ligne a insérer pas de problème.Code:DELETE FROM table WHERE clef = 'tintin' INSERT VALUES ('tintin',...,...) // Avec les données que j'ai récupéré avant INTO table (Clef,colonne1,colonne2,colonne3,...)
Mais là, comme je fais plusieurs Updates à la suite, je fais cette mise à jour au milieu d'un FETCH portant sur ma table.
J'en viens à ma question : pourquoi est-ce que cela marche ?
Je suppose pour que cela puisse fonctionner que lorsque l'on ouvre le curseur, SQL crée une petite table temporaire qui contient toutes les clefs des lignes à aller visiter
Est-ce vraiment comme cela que cela fonctionne ?
Merci.
N'hésitez pas à demander si je ne suis pas assez précis
-----