Bonjour,
Je voudrais écrire une fonction (peut-être est-ce une procédure du coup ?) qui me renvoie 0 ou 1 selon l'existence d'un résultat :
Avec comme erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 DELIMITER $$ DROP FUNCTION IF EXISTS `test_cdf`.`existence`$$ CREATE FUNCTION `test_cdf`.`existence` (ps TEXT) RETURNS INT DETERMINISTIC BEGIN DECLARE fnd INT DEFAULT 0; main: BEGIN DECLARE CONTINUE HANDLER FOR NOT FOUND SET fnd = 1; SELECT probeset_name FROM test_cdf.probeset WHERE probeset_name = ps; END main; RETURN fnd; END$$ DELIMITER ;
J'ai essayé avec IF EXISTS SELECT... et IF ISNULL SELECT mais ça capote aussi...
Code : Sélectionner tout - Visualiser dans une fenêtre à part ! Not allowed to return a result set from a function
Question très subsidiaire: j'utilise Perl avec DBD::MySQL, sauriez-vous s'il y a moyen directement de tester ceci ? J'ai essayé $sth->prepare("SELECT...") || warn "..." mais il n'y a pas de code de retour. Le while(my @array = $sth->fetchrow_array) ne s'effectue pas s'il n'y a pas de réponse, je ne peux pas contrôler l'existance à cette étape non plus.
Sauriez vous comment faire ceci ?
En vous remerciant,
C. Tobini
Partager