Question

DB2 , je dois faire un SELECT FROM UPDATE , de mettre à jour + sélectionnez en une seule transaction.
Mais je dois vous assurer de mise à jour un seul enregistrement par transaction.

Familier avec la clause LIMIT de l'option UPDATE MySQL

place une limite sur le nombre de lignes qui peuvent être mis à jour

Je cherché quelque chose de similaire dans référence UPDATE de DB2 mais sans succès.

Comment quelque chose de similaire dans DB2 être atteint?

Était-ce utile?

La solution

En fait, sur le lien que vous avez, il mentionne que vous peut mise à jour un seul enregistrement, il vous suffit d'utiliser des curseurs pour le faire. Il vous montre le page DECLARE CURSOR .

Alors d'abord, vous devez déclarer un curseur de votre table avec l'instruction select qui vous donne ce que vous voulez.

DECLARE C1 CURSOR
FOR (SELECT * FROM MYTABLE WHERE...);

Déplacer à la valeur de l'enregistrement dans le curseur que vous voulez.

Ensuite, exécutez-vous la déclaration de mise à jour contre le curseur en utilisant le lien que vous mentionnez

UPDATE MYTABLE 
SET MYCOLUMN = ?
WHERE CURRENT OF C1;

Je crois que vous avez besoin d'émettre un COMMIT (qui ferme le curseur, sauf indication contraire dans la clause DECLARE CURSOR).

Consultez la documentation dans le lien que vous avez et dans celui que j'ai. Vous pouvez finir par avoir à utiliser une procédure stockée pour exécuter ce.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top