Maison  >  Article  >  base de données  >  Une brève introduction aux fonctions personnalisées MySQL

Une brève introduction aux fonctions personnalisées MySQL

怪我咯
怪我咯original
2017-04-01 10:44:481135parcourir

En raison de besoins professionnels, je dois écrire un nombre personnalisé de lignes pour mysql, comme suit
DELIMITER $$
DROP FUNCTION IF EXISTS `onlineFunction` $$
CREATE FUNCTION `onlineFunction`(rrrr VARCHAR(50)) RETOURNE VARCHAR(255)
BEGIN
IF(rrr='online') THEN RETURN 'online';END IF;
END $$
DELIMITER ;
La première ligne DELIMITER définit un identifiant de fin, car MySQL utilise par défaut un point-virgule comme fin de l'instruction SQL, et la fonction utilise un point-virgule à l'intérieur du corps, il sera donc suivi par Les conflits de terminateur SQL par défaut, vous devez donc d'abord définir un autre symbole comme terminateur SQL. Si cette définition n'est pas ajoutée...
Code d'erreur : 1064
Vous avez une erreur dans votre syntaxe SQL ; consultez le manuel qui correspond à la version de votre serveur MySQL pour connaître la bonne syntaxe à utiliser près de la "fin" de la ligne. 1

La deuxième ligne est Supprimez la classe du même nom, sinon...
Code d'erreur : 1304
FUNCTION onlineLa fonction existe déjà

Le troisième ligne Un nom de fonction, une fonction variable et un type de retour

La quatrième ligne début est le début, qui correspond à fin$$

La cinquième ligne est le if déclaration de jugement , le format est
if(...) alors
....;
elseif
....;
else
. ...;
end if;
return ..;
Parfois, mysql ne peut pas créer une fonction personnalisée car la fonction 2 n'est pas activée

Entrez des variables d'affichage comme '%func% '; La commande

verra l'état de log_bin_trust_function_creators. S'il est désactivé, cela signifie que la fonction personnalisée est fermée

Entrez la commande set global log_bin_trust_function_creators=1;

pour définir log_bin_trust_function_creators Activez la fonction de fonction personnalisée

Mais ce paramètre est une solution temporaire, car l'état passera à OFF après le redémarrage automatique de MySQL, vous devez donc ajouter "--" dans

au démarrage du service. paramètre log-bin-trust-function-creators=1 ”.

Ou ajoutez log-bin-trust-function-creators=1 à la section [mysqld] dans my.ini (my.cnf).


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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn