DELIMITER $$ DROP FUNCTION IF EXISTS genPerson$$ CREATE FUNCTION genPerson(name varchar(20)) RETURNS varchar(50) BEGIN DECLARE str VARCHAR(50) DEFAULT ''; SET @tableName=name; SET str=CONCAT('create table ', @tableName,'(id int, name varchar(20));'); return str; END $$ DELIMITER ;
En ce qui concerne le SQL dans l'image ci-dessus
(1) DELIMITER $$ définit le terminateur. Le terminateur par défaut de MySQL est un point-virgule, mais un point-virgule peut être utilisé dans le corps de la fonction. Pour éviter les conflits, des terminateurs supplémentaires doivent être définis.
(2) SUPPRIMER LA FONCTION SI EXISTE genPerson$$ Si la fonction genPerson existe déjà, supprimez-la.
(3) CREATE FUNCTION crée la fonction genPerson Le paramètre de la fonction est name et la valeur de retour est varchar(50).
(4) Le corps de la fonction est placé entre BEGIN et END.
(5) DECLARE déclare une variable, le type str est varchar(50) et la valeur par défaut est vide.
(6) CONCAT concatène plusieurs chaînes.
(7) RETURN renvoie la chaîne concaténée str.
Cela peut être vu à partir des résultats d'exécution
Création d'une fonction dans MySQL, code d'erreur : 1418
Solution1. Vérifiez si la fonction de création est activéeCette fonction n'a aucun DETERMINISTIC, NO SQL, ou READS SQL DATA dans sa déclaration et la journalisation binaire est activée (vous *pourriez* vouloir utiliser la variable log_bin_trust_function_creators la moins sûre) Cela signifie que la fonction de création de fonction n'est pas activée.
show variables like '%func%'; ------------------------------------------- +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin_trust_function_creators | OFF | +---------------------------------+-------
SET GLOBAL log_bin_trust_function_creators = 1;
show variables like '%func%'; ------------------------------------------- +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | log_bin_trust_function_creators | ON | +---------------------------------+-------
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!