J'ai créé une table, l'ai remplie de 182 lignes, puis, plus tard, j'ai voulu rajouter un champ id_m, J'ai donc fait ce code, afin de remplir ce champ avec une itération d'entiers:
CREATE PROCEDURE iteration_id_m( IN id_m INT )
BEGIN
iteridm: LOOP
SET id_m = id_m + 1;
IF id_m < 183 THEN
UPDATE `Matable` SET `id_m` = id_m;
ITERATE iterid;
END IF;
LEAVE iteridm;
END LOOP iteridm;
END|
Quand j'appelle la procédure ça me donne une colonne id_m avec dedans 182 à chaque ligne et non pas 1,2 3 4 etc...
En fait je voudrais très exactement que cette colonne rajoutée devienne une clé à auto incrément pour les enregistrements futurs. Ma clé de base était constituée de varchar uniques et ce n'était finalement pas une bonne idée... seulement maintenant j'ai énormément d'enregistrements dans cette table.
Bon évidemment je pourrais exporter tout ça, supprimer la table et la recreer avec ce nouveau champ à auto increment puis insérer mes données, mais étant donné que j'utilise peu les procédures stockées, je me disais que c'était l'occasion d' apprendre à m'en servir...
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Ce qui se conçoit bien s'énonce clairement.
Ce qui se conçoit bien s'énonce clairement.