Mise à jour d'une colonne d'une table. [MySQL] - SQL/NoSQL - Programmation
MarshPosté le 07-02-2012 à 23:56:37
Bonjour/Bonsoir,
Je gère une base SQL et j'ai quelques problèmes avec des grands nombres sur une table avec une colonne d'entrée de GUID. Concrètement j'ai environ 50k entrées, et la numérotation monte jusqu'à 50 millions
Je souhaite donc au niveau de la colonne des GUID, parcourir toute la colonne et renuméroter en partant de 1 l'ensemble.
J'ai donc essayé de faire une procédure qui parcours chaque entrée via un curseur qui va Update et incrémenter d'un la valeur, mais je n'arrive pas à le faire marcher je dois avoir un petit soucis dans la syntaxe.
Voici mon essai :
CREATE PROCEDURE renumerote() BEGIN DECLARE i INT DEFAULT 1; DECLARE var_guid INT DEFAULT 1; DECLARE cur1 CURSOR FOR SELECT guid FROM table ORDER BY guid ASC; OPEN cur1; WHILE i < 6000000 DO FETCH cur1 INTO var_guid; SET i = i + 1; UPDATE table SET cur1 = i; END WHILE; CLOSE cur1; END
Et cela me ressort : Affected rows: 0 Alors qu'il y a des entrées guid 1, 2, 3, 4, etc jusqu'à loin =/
Si quelqu'un a une idée de pourquoi cela ne fonctionne pas je suis preneur.
Marsh Posté le 07-02-2012 à 23:56:37
Bonjour/Bonsoir,
Je gère une base SQL et j'ai quelques problèmes avec des grands nombres sur une table avec une colonne d'entrée de GUID.
Concrètement j'ai environ 50k entrées, et la numérotation monte jusqu'à 50 millions
Je souhaite donc au niveau de la colonne des GUID, parcourir toute la colonne et renuméroter en partant de 1 l'ensemble.
J'ai donc essayé de faire une procédure qui parcours chaque entrée via un curseur qui va Update et incrémenter d'un la valeur, mais je n'arrive pas à le faire marcher je dois avoir un petit soucis dans la syntaxe.
Voici mon essai :
CREATE PROCEDURE renumerote()
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE var_guid INT DEFAULT 1;
DECLARE cur1 CURSOR FOR SELECT guid FROM table ORDER BY guid ASC;
OPEN cur1;
WHILE i < 6000000 DO
FETCH cur1 INTO var_guid;
SET i = i + 1;
UPDATE table SET cur1 = i;
END WHILE;
CLOSE cur1;
END
Et cela me ressort : Affected rows: 0
Alors qu'il y a des entrées guid 1, 2, 3, 4, etc jusqu'à loin =/
Si quelqu'un a une idée de pourquoi cela ne fonctionne pas je suis preneur.
Merci d'avance.
Anomie.