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 21/05/2007, 17h37   #1
Invité de passage
 
Inscription : février 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 16
Points : 4
Points : 4
Par défaut Erreur 1172 avec Vue

Bonjour.

Afin de créer une vue, j'ai du écrire plusieurs fonctions de calcul. J'ai écrit les fonctions et je les ai testés de manière individuelle, et elles fonctionnent toutes.
J'ai donc entrepris d'écrire une vue, dont voici le code :
<<
CREATE VIEW systemplus.V_ACTIONS
(
ROWID,
NUMLOCAL,
NUMTELLOCAL,
PARAMETRES,
NUMTELQUIRAPPELLE,
TENTATIVES,
RAPPELDATEHEURE,
RESETTYPE,
RESETDATEHEURE,
NUMTELMOTIF,
MOTIF,
MOTIFDATEHEURE,
STATUSMODE,
DATEHEURE,
MODULECODE,
MODULEZONE,
MODULEFCT,
DUREERAPPEL,
DUREERESET
)
AS
SELECT
events_backups.id,
fct_FindRoomNumberFromRoomId (room_id),
fct_FindRoomPhoneNumber (room_id),
fct_ReturnText ('N/A'),
events_backups.event_data,
fct_ReturnText ('N/A'),
events_backups.time,
fct_FindResetType (time, room_id),
fct_FindResetDateHeure (time, room_id),
fct_ReturnText ('N/A'),
fct_FindMotif (time, room_id),
fct_FindMotifDateHeure (time, room_id),
fct_ReturnText ('N/A'),
fct_FindTimeAppelModule (time, room_id),
modules.code,
modules.zone,
fct_ReturnText ('N/A'),
fct_CalculDureeRappel (time, room_id),
fct_CalculDureeReset (time, room_id)
FROM events_backups, rooms, modules
WHERE event like 'ROOM-CALLED'
AND events_backups.room_id = rooms.id
AND rooms.module_id = modules.id
/*AND time > '2007-02-09 10:00:00'*/;
>>

Lorsque j'entre cette ligne, il me retourne le message d'erreur :
<ERROR 1172 (42000): Result consisted of more than one row>

D'après mes recherches, ceci arrive lorsque l'on utilise un SELECT ... INTO ... ce qui est le cas dans les fonctions.
J'ai l'impression que MySQL fait :
fonction_1(résultat1), fonction_1(résultat2), fonction_1(résultat3), ...
plutot que :
fonction_1(résultat1), fonction_2(résultat1), fonction_3(résultat1), ...
fonction_1(résultat2), fonction_2(résultat2), fonction_3(résultat2), ...
...

Est-ce que quelqu'un a une idée pour faire fonctionner la vue ?

Merci d'avance.

Mad Ant
Mad Ant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2007, 17h38   #2
Invité de passage
 
Inscription : février 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 16
Points : 4
Points : 4
J'ai oublié de signaler :
lorsque je décommente la dernière ligne, il fonctionne parce que la condition WHERE ne retourne alors qu'une seule ligne.
Mad Ant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2007, 08h43   #3
Invité de passage
 
Inscription : février 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 16
Points : 4
Points : 4
Up.
Personne n'a d'idée ?
Mad Ant est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2007, 09h00   #4
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Est-ce que vous êtes sûr que tous les SELECT ... INTO... appelés dans toutes vos fonctions retournent toujours au maximum 1 ligne ?
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2007, 10h39   #5
Invité de passage
 
Inscription : février 2007
Messages : 16
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 16
Points : 4
Points : 4
@pifor : Merci du conseil. Effectivement, je viens de remarquer que dans certains cas précis, ils ne retournent pas 1 ligne, mais plusieurs.
Je vais les retravailler.
Mad Ant 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 14h11.


 
 
 
 
Partenaires

Hébergement Web