2010-02-17 16 views
2

Avoir du mal à appliquer ce dans MySQL Workbench 5.2.15Quel est le problème avec cette fonction stockée MySQL?

 
DELIMITER // 

CREATE 
    DEFINER=`potts`@`%` 
    FUNCTION 
     `potts`.`fn_create_category_test` (test_arg VARCHAR(50)) 
    RETURNS int 

BEGIN 

    DECLARE new_id int; 
    SET new_id = 8; 
    RETURN new_id; 

END//

La fonction réelle aura beaucoup plus entre BEGIN et END mais tel qu'il est, même ce 3 revêtement ne fonctionnera pas.

Merci!

+3

Quel message d'erreur obtenez-vous? – Nifle

+0

ça marche pour moi. problèmes possibles évidents: la base de données 'potts' existe-t-elle? La fonction 'fn_create_category_test' n'existe-t-elle pas déjà dans' potts'? Est-ce que les «potts» de l'utilisateur existent? Est-ce que l'utilisateur 'potts' a les privilèges nécessaires pour créer une fonction dans la base de données' potts'? –

+0

oui, non, oui et oui. Je le mets à un bug dans cette version, il fonctionne maintenant bien dans le navigateur de requête mysql – Matthew

Répondre

1

DELIMITER $$

CREATE FUNCTION `fn_create_category_test` (test_arg varchar(50)) 
    RETURNS INT 
BEGIN 

DECLARE new_id int; 
set new_id=8; 
return new_id; 
END $$ 

DELIMITER ; 

fonctionne bien pour moi, essayer de se débarrasser de DEFINER?