Rumah >pangkalan data >tutorial mysql >Apakah perbezaan paling ketara antara fungsi dan prosedur MySQL?
Perbezaan paling ketara antara prosedur dan fungsi ialah ia dipanggil secara berbeza dan untuk tujuan yang berbeza. Selain itu, berikut adalah perbezaan antara prosedur dan fungsi -
Proses tidak mengembalikan nilai. Sebaliknya, ia dipanggil menggunakan pernyataan CALL untuk melaksanakan operasi, seperti mengubah suai jadual atau memproses rekod yang diambil.
Fungsi sebaliknya dipanggil dalam ungkapan dan mengembalikan nilai tunggal terus kepada pemanggil untuk digunakan dalam ungkapan. Iaitu, fungsi boleh digunakan dalam ungkapan dengan cara yang sama seperti pemalar, fungsi terbina dalam atau rujukan kepada lajur jadual.
Kami tidak boleh memanggil fungsi menggunakan: pernyataan CALL. Kami tidak boleh memanggil prosedur dalam ungkapan.
Sintaks untuk penciptaan rutin agak berbeza daripada prosedur dan fungsi, seperti berikut -
CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body CREATE [DEFINER = { user | CURRENT_USER }] FUNCTION sp_name ([func_parameter[,...]]) RETURNS type [characteristic ...] routine_body proc_parameter: [ IN | OUT | INOUT ] param_name type func_parameter: param_name type type: Any valid MySQL data type characteristic: COMMENT 'string' | LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } routine_body: Valid SQL routine statement
Parameter proses boleh ditakrifkan sebagai input sahaja, output sahaja atau untuk kedua-dua input dan output. Ini bermakna prosedur boleh menggunakan parameter output untuk menghantar nilai kembali kepada pemanggil. Nilai ini boleh diakses dalam penyata berikutan penyataan CALL.
Sebaliknya, fungsi hanya mempunyai parameter input. Oleh itu, walaupun kedua-dua prosedur dan fungsi boleh mempunyai parameter, sintaks pengisytiharan parameter untuk prosedur adalah berbeza daripada untuk fungsi.
Fungsi mengembalikan nilai, jadi mesti ada klausa RETURNS dalam definisi fungsi yang menunjukkan jenis data nilai pulangan. Selain itu, mesti ada sekurang-kurangnya satu pernyataan RETURN dalam badan fungsi untuk mengembalikan nilai kepada pemanggil.
Sebaliknya, RETURNS dan RETURN tidak akan muncul dalam definisi prosedur.
li>Atas ialah kandungan terperinci Apakah perbezaan paling ketara antara fungsi dan prosedur MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!