Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2006, 09h22   #1
Invité de passage
 
Inscription : mai 2006
Messages : 1
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 1
Points : 1
Points : 1
Par défaut mysql Procedures stockées

Bonjours,
je suis nouveau dans les procedures stockées et j'ais volus creer une procedure simple de mis a jours de quelques champs dans une table.
le probleme que le nombre d'enregistrement de cursor n'est pas assez grand dans l'ordre de 4168 enregistrements mais le temps d'execution de procedure est tres longs plus que 2heures voici le code et svp dit mois ou est le probleme. d'autres procedures fonctionnent tres bien pourtant plus compliques et contennent plus d'enregistrements a manipulées.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
BEGIN
DECLARE VARIABLES typvariables;
DECLARE MAGDt CURSOR FOR
SELECT DISTINCT feld2,feld14,feld33 FROM magd WHERE NOT(feld14 IS NULL) AND feld33='ks';
DECLARE MAGDk CURSOR FOR
SELECT DISTINCT feld2,feld14,feld33 FROM magd WHERE NOT(feld14 IS NULL) AND (feld33='ltg' OR feld33='ckont' OR feld33='edich');
DECLARE COMPT CURSOR FOR SELECT COUNT(firmnr) FROM test;
OPEN orderrs ;OPEN MAGDk;
UPDATE `importdetail` SET `KontBez1`=NULL ;
oopmagd:LOOP
FETCH MAGDk INTO teil,des,typ;
IF typ='CKONT' then UPDATE ImportDetail SET KontBez1=des WHERE Kont1=teil;
UPDATE ImportDetail SET KontBez2=des WHERE Kont2=teil;
end IF ;
IF typ='ltg' then
UPDATE ImportDetail SET BezeichLeitg=des WHERE TeilNrLeitg=teil;
end IF ;
IF typ='edich' then
    UPDATE ImportDetail SET BezZusatz1=des WHERE Zusatz1=teil;
    UPDATE ImportDetail SET BezZusatz1=des WHERE Zusatz1=teil;
end IF;
END LOOP loopmagd;CLOSE MAGDk;
END
chakrouni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 09h47   #2
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 121
Points : 1 121


J'ai rajouté la balise code, merci d'éditer votre message pour le rendre plus lisible avec des espaces et des retours chariots .
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2006, 09h52   #3
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 121
Points : 1 121
J'ai juste vu cette horreur
Code :
1
2
 
SELECT * FROM test ;
Si quelqu'un modifie un jour votre table en ajoutant un nouveau champ , votre requête ne marchera plus car le nombre de colonne retournée ne correspondra pas au nombre de variables qui suivent.
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h26.


 
 
 
 
Partenaires

Hébergement Web