MySQL CREATE FUNCTION Sintassi

Sto cercando di creare una funzione in MySQL:

Ecco il codice SQL:

CREATE FUNCTION F_Dist3D (x1 decimal, y1 decimal) RETURNS decimal DETERMINISTIC BEGIN DECLARE dist decimal; SET dist = SQRT(x1 - y1); RETURN dist; END; 

Sto ottenendo il seguente errore:

 #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 

Sto eseguendo questa dichiarazione di creazione in phpMyAdmin. Cosa c’è di sbagliato in questa funzione?

Devi scavalcare il tuo ; delimitatore con qualcosa come $$ per evitare questo tipo di errore.

Dopo la definizione della funzione, è ansible reimpostare il delimitatore ; .

Questo dovrebbe funzionare:

 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 crea la syntax della funzione:

 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 ; 

Usa questa funzione nella tua domanda

 SELECT a.*,GETFULLNAME(a.fname,a.lname) FROM namedbtbl as a SELECT GETFULLNAME("Biswarup","Adhikari") as myname; 

Guarda questo video come creare la funzione mysql e come utilizzare nella tua query

Crea tutorial video di funzione Mysql