J'essaie de créer une fonction dans MySQL:
Voici le code SQL:
CREATE FUNCTION F_Dist3D (x1 decimal, y1 decimal)
RETURNS decimal
DETERMINISTIC
BEGIN
DECLARE dist decimal;
SET dist = SQRT(x1 - y1);
RETURN dist;
END;
Je reçois l'erreur suivante:
#1064 - You have an error in your SQL syntax;
check the manual that corresponds to your MySQL
server version for the right syntax to use near '' at line 10
J'exécute cette instruction create dans phpMyAdmin. Quel est le problème avec cette fonction?
Vous devez remplacer votre ;
délimiteur avec quelque chose comme $$
pour éviter ce genre d'erreur.
Après la définition de votre fonction, vous pouvez redéfinir le délimiteur sur ;
.
Cela devrait fonctionner:
DELIMITER $$
CREATE FUNCTION F_Dist3D (x1 decimal, y1 decimal)
RETURNS decimal
DETERMINISTIC
BEGIN
DECLARE dist decimal;
SET dist = SQRT(x1 - y1);
RETURN dist;
END$$
DELIMITER ;
MySQL crée la syntaxe de la fonction:
DELIMITER //
CREATE FUNCTION GETFULLNAME(fname CHAR(250),lname CHAR(250))
RETURNS CHAR(250)
BEGIN
DECLARE fullname CHAR(250);
SET fullname=CONCAT(fname,' ',lname);
RETURN fullname;
END //
DELIMITER ;
Utilisez cette fonction dans votre requête
SELECT a.*,GETFULLNAME(a.fname,a.lname) FROM namedbtbl as a
SELECT GETFULLNAME("Biswarup","Adhikari") as myname;
Regardez cette vidéo comment créer la fonction mysql et comment l'utiliser dans votre requête