日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql function 与 procedure

發(fā)布時間:2025/7/14 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql function 与 procedure 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Mysql 的 function 和 procedure 有啥區(qū)別呢 ? 網(wǎng)上搜索后說 function 有返回值, procedure 無返回值。

1.return?

從function 的語法角度來說確實如此, function 的定義中有 return 一項,如下所示

procedure:?

DROP PROCEDURE IF EXISTS `p_query_user` ; DELIMITER // CREATE PROCEDURE p_query_user() begindeclare c varchar(100) default '0';select 1111 ;end //DELIMITER ; CALL p_query_user();

?

function:

DROP FUNCTION IF EXISTS `f_query_user` ; DELIMITER // CREATE FUNCTION f_query_user() RETURNS varchar(100) CHARSET gbkbegindeclare c varchar(100) default '0';select 1111 INTO c;RETURN c; end //DELIMITER ; SELECT f_query_user();

2.select?

  • 在?procedure ?可以有 select 1111 ;
  • 在 function 中不能有 select 1111 ;

3.調(diào)用

?procedure ? 用 call 可以調(diào)用?

CALL p_query_user();

?

function 用 select 調(diào)用.

SELECT f_query_user();

?

4.參數(shù)帶默認值

?procedure 不支持defualt值,可以改成set或者內(nèi)部定義變量加上 defualt關(guān)鍵字

?function?不支持defualt值,可以改成set或者內(nèi)部定義變量加上 defualt關(guān)鍵字

?

3. 讓我來簡單的說PROCEDURE可以返回值,也可以做一件事,比如幾個TABLE之間的數(shù)據(jù)轉(zhuǎn)來轉(zhuǎn)去,而FUNCTION一定要有返回值,還只能返回一個.....

4.三點與存儲過程不同的地方:?
a,必須要一個RETURNS語句來定義返回值類型?
b,不能指定參數(shù)的IN、OUT或INOUT修飾符,所有參數(shù)隱式的為IN?
c,Function體必須包含RETURN語句來終結(jié)Function執(zhí)行并返回指定的結(jié)果給調(diào)用者?

?

2.考慮是使用函數(shù)還是使用存儲過程可以根據(jù)以下方面:
從參數(shù)的返回情況來看:如果返回多個參數(shù)值最好使用存儲過程,如果只有一個返回值的話可以使用函數(shù);
從調(diào)用情況來看:

(1)如果在SQL語句(DML或SELECT)中調(diào)用的話一定是存儲函數(shù)或存儲的封裝函數(shù)不可以是存儲過程,但調(diào)用存儲函數(shù)的時候還有好多限制以及函數(shù)的純度等級的問題,你可以參考《ORACLE 9I PL\SQL程序設(shè)計》(機械工業(yè)出版社);
(2)如果是在過程化語句中調(diào)用的話,就要看你要實現(xiàn)什么樣的功能。函數(shù)一般情況下是用來計算并返回一個計算結(jié)果而存儲過程一般是用來完成特定的數(shù)據(jù)操作(比如修改、插入數(shù)據(jù)庫表或執(zhí)行某些DDL語句等等),所以雖然他們的語法上很相似但用戶在使用他們的時候所需要完成的功能大部分情況下是不同的。

?

總結(jié)

以上是生活随笔為你收集整理的mysql function 与 procedure的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。