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 18/05/2007, 15h59   #1
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 44
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 44
Points : 26
Points : 26
Par défaut Fonctionnement des fonctions sous MySql

Bonjour à tous,

Je suis actuellement en train de me former sur les fonctions sous MySql 5 et je rencontre une légère difficulté.

J'ai créé une fonction toute bête :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DELIMITER $$
 
DROP FUNCTION IF EXISTS test$$
 
CREATE FUNCTION test() RETURNS INT
BEGIN
 
DECLARE a,b INT;
SET a = 0;
SET b = 10;
 
WHILE a < b DO
  INSERT INTO test VALUES(a);
  SET a = a + 1;
END WHILE;
 
RETURN(SELECT test FROM test);
END$$
 
DELIMITER;
Jusque là tout va bien sauf que lorsque je lance un SELECT sur cette fonction en retour j'ai l'erreur suivante : Duplicate entry '1' for key 1.

J'ai fais pas mal de recherche mais il faut admettre que la doc n'est pas très poussée à ce niveau là.

Quelqu'un saurait-il pourquoi cette fonction ne marche pas ?

Merci par avance.
crazyday est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2007, 02h05   #2
Membre Expert
 
Avatar de Adjanakis
 
Inscription : avril 2004
Messages : 734
Détails du profil
Informations personnelles :
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations forums :
Inscription : avril 2004
Messages : 734
Points : 1 281
Points : 1 281
Bonjour,

Un problème de clé primaire apparement. Quelle est la structure et le contenu de la table à l'heure actuelle ? Y-a-t-il une clé primaire ?
__________________
Pensez au tag
Adjanakis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/05/2007, 22h35   #3
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 44
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 44
Points : 26
Points : 26
Merci,

Je viens de trouver pourquoi j'avais cette erreur. En fait avec mon INSERT je renseignant la clé primaire, et apparemment il n'aime pas.

En revanche, j'ai une autre erreur :
Subquery return more than 1 row

Apparemment, il n'est pas possible de retourner plusieurs résultats sous forme de SELECT. Du coup quelqu'un a-t-il une idée pour que je puisse retourner la liste des résultats de la fonction sans avoir à interroger la table par une autre requête.

Merci.
crazyday 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 02h44.


 
 
 
 
Partenaires

Hébergement Web