Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was ist der Unterschied zwischen gespeicherten MySQL-Funktionen und gespeicherten Prozeduren?

王林
Freigeben: 2023-05-26 14:28:26
nach vorne
3147 Leute haben es durchsucht

MySQL-gespeicherte Funktionen (benutzerdefinierte Funktionen) werden im Allgemeinen zum Berechnen und Zurückgeben eines Werts verwendet oder Funktionen können in eine Funktion geschrieben werden.

Gespeicherte Funktionen definieren wie gespeicherte Prozeduren eine Sammlung von SQL-Anweisungen in der Datenbank.

Der Unterschied zwischen gespeicherten Funktionen und gespeicherten Prozeduren

1. Gespeicherte Funktionen haben und haben nur einen Rückgabewert, während gespeicherte Prozeduren mehrere Rückgabewerte haben können, oder Es gibt keinen Rückgabewert.

2.Gespeicherte Funktionen können nur Eingabeparameter haben und keine Daten aufnehmen, während gespeicherte Prozeduren mehrere In-, Out- und Inout-Parameter haben können.

3. Anweisungen in gespeicherten Prozeduren sind leistungsfähiger. Gespeicherte Prozeduren können sehr komplexe Geschäftslogik implementieren , während Funktionen viele Einschränkungen haben, wie z. B. Einfügen, Aktualisieren und Löschen ., create und andere Anweisungen; .

5. Gespeicherte Prozeduren können gespeicherte Funktionen aufrufen, Funktionen können jedoch keine gespeicherten Prozeduren aufrufen.

6 Gespeicherte Prozeduren werden im Allgemeinen als unabhängiger Teil (Aufruf) ausgeführt. Die Funktion kann als Teil der Abfrageanweisung aufgerufen werden.

create function func_name ([param_name type[,...]])
returns type
[characteristic ...] 
begin
    routine_body
end;
Nach dem Login kopieren

Parameterbeschreibung:

(1) func_name: Der Name der gespeicherten Funktion.

(2) param_name Typ: optional, gibt die Parameter der Speicherfunktion an. Der Typparameter wird verwendet, um den Parametertyp der gespeicherten Funktion anzugeben, bei dem es sich um alle unterstützten Typen in der MySQL-Datenbank handeln kann.

(3) RÜCKGABE-Typ: Geben Sie den Typ des Rückgabewerts an.
(4) Merkmal: Geben Sie optional die Merkmale der Speicherfunktion an.
(5) routine_body: SQL-Codeinhalt. #🎜🎜 #

create database mydb9_function;
-- 导入测试数据
use mydb9_function;
set global log_bin_trust_function_creators=TRUE; -- 信任子程序的创建者
 
-- 创建存储函数-没有输输入参数
drop function if exists myfunc1_emp;
 
delimiter $$
create function myfunc1_emp() returns int
begin
  declare cnt int default 0;
    select count(*) into  cnt from emp;
  return cnt;
end $$
delimiter ;
-- 调用存储函数
select myfunc1_emp();
Nach dem Login kopieren
rrree

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen gespeicherten MySQL-Funktionen und gespeicherten Prozeduren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage