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 14/07/2008, 23h32   #1
Invité régulier
 
Inscription : décembre 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 11
Points : 6
Points : 6
Par défaut un select dans une procedure stockée

Bonjour à tout le monde

je voulais faire une recherche dans la fonction avant d'insérer un nouveau enregistrement, je connais la syntaxe en postGreSql mais pour mySQL j'ai lu tous les facs mais j'ai pas trouvé.

Voici mon code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE FUNCTION ajouter(numero varchar(20),nomcli varchar(20)) AS integer
 begin
    declare res integer;
  SELECT * FROM mabase WHERE num LIKE numero;
IF NOT found then
  INSERT INTO mabase (num,nom)VALUES(numero,nomcli);
 res=1;
else
res=0;
end IF;
RETURN res;
 
end
//mais ca ne marche pas

//je voudrai savoir si dois utilise le cursor ou non,
Si Oui quelle serait la bonne syntaxe.
Merci d'avance.

--------------------------------------------------------------------------------
Dernière modification par qi130 Hier à 11h49. Motif: Ajout des balises de code ( # )
alassane0101 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 18h49   #2
Membre confirmé
 
Inscription : janvier 2006
Messages : 178
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : janvier 2006
Messages : 178
Points : 208
Points : 208
Avec SELECT INTO et un COUNT ça devrait marcher (je ne peux pas le tester et je ne suis pas encore un spécialiste des SP sous MySQL ) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE FUNCTION ajouter(numero varchar(20),nomcli varchar(20)) RETURNS INTEGER 
 
BEGIN
 
    DECLARE res INTEGER;
    DECLARE iCount INTEGER;
 
    SELECT COUNT(*)
    INTO iCount 
    FROM mabase 
    WHERE num LIKE numero;
 
    IF (iCount = 0) THEN
        INSERT INTO mabase (num,nom)VALUES(numero,nomcli);
        SET res = 1;
    ELSE
        SET res = 0;
    END IF;
 
    RETURN res;
 
END;
rbaraer 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 21h11.


 
 
 
 
Partenaires

Hébergement Web