Apakah perbezaan antara fungsi tersimpan MySQL dan prosedur tersimpan?

王林
Lepaskan: 2023-05-26 14:28:26
ke hadapan
3143 orang telah melayarinya

Fungsi tersimpan MySQL (Fungsi tersuai biasanya digunakan untuk mengira dan mengembalikan nilai atau fungsi yang kerap digunakan boleh ditulis ke dalam fungsi.

Fungsi tersimpan, seperti prosedur tersimpan, mentakrifkan koleksi pernyataan SQL dalam pangkalan data.

Perbezaan antara fungsi tersimpan dan prosedur tersimpan

1 Fungsi tersimpan mempunyai satu dan hanya satu nilai pulangan, manakala prosedur tersimpan boleh mempunyai berbilang nilai pulangan atau tiada nilai pulangan.

2.Fungsi tersimpan hanya boleh mempunyai parameter input dan tidak boleh mengambil masuk, manakala prosedur tersimpan boleh mempunyai berbilang parameter masuk, keluar dan keluar.

3. Penyata dalam prosedur tersimpan lebih berkuasa Prosedur tersimpan boleh melaksanakan logik perniagaan yang sangat kompleks , manakala fungsi mempunyai banyak sekatan Contohnya, masukkan, kemas kini, padam, cipta, dsb dalam fungsi.

4. Fungsi storan hanya menyelesaikan kerja pertanyaan, menerima parameter input dan mengembalikan hasil, yang bermaksud bahawa fungsi yang dilaksanakan oleh fungsi itu secara relatifnya.

5. Prosedur tersimpan boleh memanggil fungsi tersimpan, tetapi fungsi tidak boleh memanggil prosedur tersimpan.

6. Prosedur tersimpan biasanya dilaksanakan sebagai bahagian bebas (panggilan). Fungsi ini boleh dipanggil sebagai sebahagian daripada pernyataan pertanyaan

create function func_name ([param_name type[,...]])
returns type
[characteristic ...] 
begin
    routine_body
end;
Salin selepas log masuk

Perihalan parameter:
(1) func_name: Nama fungsi yang disimpan.
(2) jenis param_name: pilihan, menentukan parameter fungsi storan. Parameter jenis digunakan untuk menentukan jenis parameter fungsi yang disimpan, yang boleh menjadi semua jenis yang disokong dalam pangkalan data MySQL.
(3) Jenis RETURNS: Tentukan jenis nilai pulangan.
(4) Ciri: Pilihan, menentukan ciri-ciri fungsi storan.
(5) routine_body: Kandungan kod SQL.

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();
Salin selepas log masuk
rrree

Atas ialah kandungan terperinci Apakah perbezaan antara fungsi tersimpan MySQL dan prosedur tersimpan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan