Heim  >  Artikel  >  Datenbank  >  Was ist der Unterschied zwischen gespeicherten MySQL-Funktionen und gespeicherten Prozeduren?

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

王林
王林nach vorne
2023-05-26 14:28:263084Durchsuche

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;

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();
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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen