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!