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 02/06/2006, 11h43   #1
Invité de passage
 
Inscription : mai 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 21
Points : 4
Points : 4
Par défaut Procédure stockée et fonction max

Bonjour je réalise actuellement des procédures stockée et je rencontre un probléme Je voudrai qu'une fonction me retourne le max d'un identifiant. J'ai donc tapé ceci ça passe mais ça ne renvoit rien help!

Create function addadresse() returns integer
return max(id_adresse);

A l'execution cela me signale invalid use of group fonction

Help me!
nic413 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 14h00   #2
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Je propose bêtement : il ne faudrait pas écrire une requête SQL qui calcule le max et la procédure stockée renverrait cette valeur (d'ailleurs quel serait alors l'intérêt d'une telle procédure stockée) ?
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 14h03   #3
Invité de passage
 
Inscription : mai 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 21
Points : 4
Points : 4
Ben oui j'ai essayé!
create function addaddresse() returns integer
declare idmax integer;
set idmax=select max(id_adresse) from adresse;
return idmax;

Mais ça ne marche pas

Help!
nic413 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 14h44   #4
Membre confirmé
 
Étudiant
Inscription : mai 2006
Messages : 199
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 199
Points : 249
Points : 249
je ne suis pas sur mais il ne faudrait pas mettre un begin et un end

Code :
1
2
3
4
5
6

Create function addadresse() returns integer
begin
return max(id_adresse);
end;
floflo_2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 14h53   #5
Invité de passage
 
Inscription : mai 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 21
Points : 4
Points : 4
Voila la procédure que je voulai écrire en entier et qui marche!

DELIMITER //

CREATE PROCEDURE addadresse(id_type_adresse integer,adresse varchar(150),code_postal varchar(20),ville varchar(150),numero_tel varchar(20),numero_tel_port varchar(20),numero_fax varchar(20),email varchar(255),pays varchar(50),region varchar(100))
BEGIN
insert into adresse(id_adresse,id_type_adresse,adresse,code_postal,ville,numero_tel,numero_tel_port,numero_fax,email,pays,region)
values (max(id_adresse),id_type_adresse,adresse,code_postal,ville,numero_tel,numero_tel_port,numero_fax,email,pays,region);
SELECT max(id_adresse) from adresse;
END;
//

DELIMITER ;

Maintenant ma question est comment puis je récuperer le max de id_adresse dans une autre procédure?
nic413 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 14h54   #6
Invité de passage
 
Inscription : mai 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 21
Points : 4
Points : 4
Avez vous déja fait des procédure stockés avec query browser? Est ce que cela marche bien? moi je suis souvent obligé de me battre pour que ça passe!
nic413 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 16h02   #7
Xo
Expert Confirmé
 
Avatar de Xo
 
Inscription : janvier 2005
Messages : 2 701
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : janvier 2005
Messages : 2 701
Points : 3 237
Points : 3 237
Envoyer un message via Skype™ à Xo
Le langage SQL n'est pas un langage procédural : Toutes les questions concernant le langage procédural d'un SGBD doivent être posées dans le forum de ce SGBD

Merci de spécifier votre SGBD, afin qu'un modérateur déplace ce message.
__________________
"Ce que l'on conçoit bien s'énonce clairement,
Et les mots pour le dire arrivent aisément." Nicolas Boileau

"Expliquer empêche de comprendre si cela dispense de chercher"

Quiz Oracle : venez tester vos connaissances !

La FAQ Oracle : 138 réponses à vos questions
Aidez-nous à la compléter
Xo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 16h03   #8
Invité de passage
 
Inscription : mai 2006
Messages : 21
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 21
Points : 4
Points : 4
C'est du mysql 5 désolé je pensai étre au bon endroit
nic413 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2006, 17h01   #9
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
Je déplace ...

PS : si je touche 1 euro à chaque fois que je déplace une discussion de SQL vers un SGBD spécifique, je suis riche en un mois !
__________________
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é
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h51.


 
 
 
 
Partenaires

Hébergement Web