J'avais laissé cela en plan, parce que finalement j'avais changé mon fusil d'épaule, mais je me retrouve de nouveau avec ce problème.
J'ai regardé la doc du lien que tu m'avais donné, mais quand dans phpmyadmin j'inscris ceci:
CREATE PROCEDURE doiterate(id_chor INT)
BEGIN
label1: LOOP
SET id_chor = id_chor + 1;
IF id_chor < 183 THEN
ITERATE label1;
END IF;
LEAVE label1;
END LOOP label1;
SET @x = id_chor;
END;
et ça me répond:
Erreur
requête SQL:
CREATE PROCEDURE doiterate( id_chor INT ) BEGIN label1 : LOOP SET id_chor = id_chor +1;
MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
Pour MySQL, le délimiteur par défaut est le point virgule. Dans ta requête tu démarres ta procédure et tu utilises le point virgule à l'intérieur ce qui embrouille MySQL qui croit que la requête s'arrête à la ligne 4 ...
Dans PHPMyAdmin pour définir un délimiteur "temporaire" tu as une zone de saisie dans la fenêtre d'exécution de requête. Mets-y un délimiteur différent, par exemple && et saisi ta requête ainsi :
CREATE PROCEDURE remplir_table( IN id_chor INT )
BEGIN
label1: LOOP
SET id_chor = id_chor + 1;
IF id_chor < 183 THEN
INSERT INTO matable ( colonne1, colonne2, colonne3, colonne4 )
VALUES ( 0, id_chor, 0, 0 );
ITERATE label1;
END IF;
LEAVE label1;
END LOOP label1;
END&&
× 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.
Ce qui se conçoit bien s'énonce clairement.