Heim  >  Artikel  >  Datenbank  >  Eine kurze Einführung in benutzerdefinierte MySQL-Funktionen

Eine kurze Einführung in benutzerdefinierte MySQL-Funktionen

怪我咯
怪我咯Original
2017-04-01 10:44:481174Durchsuche

Aus beruflichen Gründen muss ich eine benutzerdefinierte Anzahl von Zeilen für MySQL schreiben, wie folgt:
DELIMITER $$
DROP FUNCTION IF EXISTS `onlineFunction` $$
CREATE FUNCTION `onlineFunction`(rrrr VARCHAR(50)) RETURNS VARCHAR(255)
BEGIN
IF(rrrr='online') THEN RETURN 'online';END IF;
END $$
DELIMITER ;
Die erste Zeile DELIMITER definiert eine Endkennung, da MySQL standardmäßig ein Semikolon als Ende der SQL-Anweisung verwendet und die Funktion ein Semikolon innerhalb des Körpers verwendet. Es folgt also ein Konflikt mit dem Standard-SQL-Terminator, daher müssen Sie zuerst ein anderes Symbol als SQL-Terminator definieren. Wenn diese Definition nicht hinzugefügt wird...
Fehlercode: 1064
Sie haben einen Fehler in Ihrer SQL-Syntax, überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, um die richtige Syntax für die Verwendung nahe „Ende“ in der Zeile zu finden 1

Die zweite Zeile ist Löschen Sie die -Klasse mit demselben Namen, sonst...
Fehlercode: 1304
FUNCTION onlineFunktion existiert bereits

Die Dritte Zeile Ein Funktionsname, eine Funktions--Variable und ein Rückgabetyp

Die vierte Zeile begin ist der Anfang, der end$$ entspricht

Die fünfte Zeile ist das Wenn Urteilsaussage , das Format ist
if(...) then
....;
elseif
....;
else
. ...;
end if;
return ..;
Manchmal kann MySQL keine benutzerdefinierte Funktion erstellen, weil die Funktion 2 nicht aktiviert ist

Geben Sie Show-Variablen wie ein '%func% '; Der Befehl

zeigt den Status von log_bin_trust_function_creators an. Wenn er AUS ist, bedeutet dies, dass die benutzerdefinierte Funktion geschlossen ist

Geben Sie den Befehl set global log_bin_trust_function_creators=1;
ein
zum Festlegen von log_bin_trust_function_creators Aktivieren Sie die benutzerdefinierte Funktionsfunktion

Diese Einstellung ist jedoch eine vorübergehende Lösung, da sich der Status nach dem automatischen Neustart von MySQL auf AUS ändert. Sie müssen daher „--“ in
wenn der Dienst startet log-bin-trust-function-creators=1 ” Parameter.

Oder fügen Sie log-bin-trust-function-creators=1 zum Abschnitt [mysqld] in my.ini (my.cnf) hinzu.


Das obige ist der detaillierte Inhalt vonEine kurze Einführung in benutzerdefinierte MySQL-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn