Les procédures stoquées [phpmyadmin] - SQL/NoSQL - Programmation
Marsh Posté le 26-10-2017 à 13:30:07
Citation : Une histoire de délémiteurs ? |
C'est effectivement possible. L'as-tu changé ? Quel est ton "code" ?
Marsh Posté le 26-10-2017 à 13:55:34
Je pensais que l'interface servait justement à contourner le swap de délimiteurs :
C'est pas vraiment du code que je met la-dedans, c'est juste 2 lignes, qui marchent séparément (avec ou sans point-virgules) :
TRUNCATE TABLE `playerstatstrain`;
INSERT playerstatstrain SELECT * FROM playerstats;
C'est pareil avec ou sans les points-virgules en fin de ligne...
Marsh Posté le 26-10-2017 à 14:49:20
Une procédure stockée n'est pas censée commencer par begin
Parce que là, il te dit clairement que t'as une faute de syntaxe SQL. Donc rien à voir avec le ;
Marsh Posté le 26-10-2017 à 15:12:33
Ok donc dans la boiboite, je dois mettre un truc genre ça :
Code :
|
Je crois avoir déjà essayé, mais je re-test ce soir.
Marsh Posté le 29-10-2017 à 12:38:28
J'ai une nouveau "problème" après avoir écrit 2 procstock qui fonctionnent bien, dont voici un exemple :
Cette procédure prend un paramètre en entrée : le pid du joueur.
J’aimerai créer une nouvelle procédure (disons "50-UnlockAllPlayers" ) qui jouerait "40-UnlockPlayer" pour chaque ligne de la requête suivante :
SELECT DISTINCT pid FROM playerstats;
Mes recherches n'ont rien données sur ce point précis, qui ne me paraissait pas relever d'une grande complexité au départ...
Marsh Posté le 30-10-2017 à 20:54:54
Bon alors là je bloque complètement... mon idée de faire une procstock qui lance l'autre procsotck ne parait pas réalisable...
Du coup je veux bien repartir dans la réécriture d'une nouvelle ProcStock mais je bloque :
Voici le code qui fonctionne :
Code :
|
Je dois remplacer le paramètre mPID par la requête suivante :
Code :
|
Des idées ?
Marsh Posté le 31-10-2017 à 00:04:53
!
As-tu essayé de passer par des curseurs ?
Un petit lien explicatif : Documentation
Cela donnerait un truc du genre :
Code :
|
A voir si cela pourrait correspondre à ton besoin cependant Je ne comprends pas bien comment est fait ton INSERT à partir de ton SELECT
Marsh Posté le 31-10-2017 à 10:16:12
Merci,
Je vais regarder pour les curseurs mais j'ai cru voir que c'était à utiliser en cas de dernier recours (plutôt déconseillé quoi), mais si y'a pas d'autre solution...
Je vais tenter d'explique ma procstock :
INSERT INTO playerstats (pid, statname, value) ---> Je modifie la table playerstats...
SELECT mPID,statname,value FROM playerstatsunlock ---> je prends statname & value à partir de la table playerstatsunlock (qui est une sortie table "template" ) mais je remplace le pid par mPID le paramètre fixe de la procstock
ON DUPLICATE KEY
UPDATE value = playerstats.value+playerstatsunlock.value; ---> si la ligne existe déjà (avec mPID), je lui ajoute la valeur de playerstatsunlock
C'est plus clair ?
Marsh Posté le 04-11-2017 à 19:15:54
Soileh a écrit : !
|
Parfait, il ne manquait que le END LOOP; avant le CLOSE curseurPID;
Merci !
Marsh Posté le 26-10-2017 à 10:46:06
Bonjour,
Je n'arrive pas à créer une procédure stoquée sous PHPMYADMIN, qui fasse plus d'une ligne... quelqu'un a-t-il déjà essayé ?
Une histoire de délémiteurs ?
Message édité par unisev le 26-10-2017 à 10:57:48