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

歡迎訪問 生活随笔!

生活随笔

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

数据库

mysql函数创建与使用_mysql function函数创建与应用方法

發(fā)布時(shí)間:2023/12/3 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql函数创建与使用_mysql function函数创建与应用方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這些語句創(chuàng)建存儲(chǔ)子程序。要在MySQL 5.1中創(chuàng)建子程序,必須具有CREATE ROUTINE權(quán)限,并且ALTER ROUTINE和EXECUTE權(quán)限被自動(dòng)授予它的創(chuàng)建者。如果二進(jìn)制日志功能被允許,你也可能需要SUPER權(quán)限,請(qǐng)參閱20.4節(jié),“存儲(chǔ)子程序和觸發(fā)程序的二進(jìn)制日志功能”。

默認(rèn)地,子程序與當(dāng)前數(shù)據(jù)庫教程關(guān)聯(lián)。要明確地把子程序與一個(gè)給定數(shù)據(jù)庫關(guān)聯(lián)起來,可以在創(chuàng)建子程序的時(shí)候指定其名字為db_name.sp_name。

如果子程序名和內(nèi)建的SQL函數(shù)名一樣,定義子程序時(shí),你需要在這個(gè)名字和隨后括號(hào)中間插入一個(gè)空格,否則發(fā)生語法錯(cuò)誤。當(dāng)你隨后調(diào)用子程序的時(shí)候也要插入。為此,即使有可能出現(xiàn)這種情況,我們還是建議最好避免給你自己的存儲(chǔ)子程序取與存在的SQL函數(shù)一樣的名字。

由括號(hào)包圍的參數(shù)列必須總是存在。如果沒有參數(shù),也該使用一個(gè)空參數(shù)列()。每個(gè)參數(shù)默認(rèn)都是一個(gè)IN參數(shù)。要指定為其它參數(shù),可在參數(shù)名之前使用關(guān)鍵詞 OUT或INOUT

注意: 指定參數(shù)為IN, OUT, 或INOUT 只對(duì)PROCEDURE是合法的。(FUNCTION參數(shù)總是被認(rèn)為是IN參數(shù))

RETURNS字句只能對(duì)FUNCTION做指定,對(duì)函數(shù)而言這是強(qiáng)制的。它用來指定函數(shù)的返回類型,而且函數(shù)體必須包含一個(gè)RETURN value語句

mysql教程> delimiter $$

mysql>

mysql> CREATE FUNCTION myFunction(

->???????? in_title VARCHAR(4),

->???????? in_gender CHAR(1),

->???????? in_firstname???? VARCHAR(20),

->???????? in_middle_initial CHAR(1),

->???????? in_surname?????? VARCHAR(20))

->

->?? RETURNS VARCHAR(60)

-> BEGIN

->?? DECLARE l_title?????????????? VARCHAR(4);

->?? DECLARE l_name_string???????? VARCHAR(60);

->

->?? IF ISNULL(in_title)? THEN

->????? IF in_gender='M' THEN

->???????? SET l_title='Mr';

->????? ELSE

->???????? SET l_title='Ms';

->????? END IF;

->?? END IF;

->

->?? IF ISNULL(in_middle_initial) THEN

->????? SET l_name_string=CONCAT(l_title,' ',in_firstname,' ',in_surname);

->?? ELSE

->????? SET l_name_string=CONCAT(l_title,' ',in_firstname,' ',

->?????????????????????????? in_middle_initial,' ',in_surname);

->?? END IF;

->

->?? RETURN(l_name_string);

-> END$$

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql> delimiter ;

mysql>

mysql> select myFunction('Mrs','M','First','Middle','Last');

+-----------------------------------------------+

| myFunction('Mrs','M','First','Middle','Last') |

+-----------------------------------------------+

| NULL????????????????????????????????????????? |

+-----------------------------------------------+

1 row in set, 1 warning (0.00 sec)

mysql>

mysql>

mysql> select myFunction(null,'M','First','Middle','Last');

+----------------------------------------------+

| myFunction(null,'M','First','Middle','Last') |

+----------------------------------------------+

| Mr First M Last????????????????????????????? |

+----------------------------------------------+

1 row in set, 1 warning (0.00 sec)

mysql>

mysql> drop function myFunction;

Query OK, 0 rows affected (0.00 sec)

mysql>

mysql>

注:可能受到系統(tǒng)影響

受影響系統(tǒng):

MySQL AB MySQL 4.1.5

MySQL AB MySQL 4.1.4

MySQL AB MySQL 4.1.3-beta

MySQL AB MySQL 4.1.3-0

MySQL AB MySQL 4.1.2-alpha

MySQL AB MySQL 4.1.0-alpha

MySQL AB MySQL 4.1.0-0

MySQL AB MySQL 4.0.9-gamma

MySQL AB MySQL 4.0.9

MySQL AB MySQL 4.0.8-gamma

MySQL AB MySQL 4.0.8

MySQL AB MySQL 4.0.7-gamma

MySQL AB MySQL 4.0.7

MySQL AB MySQL 4.0.6

MySQL AB MySQL 4.0.5a

MySQL AB MySQL 4.0.5

MySQL AB MySQL 4.0.4

MySQL AB MySQL 4.0.3

MySQL AB MySQL 4.0.21

MySQL AB MySQL 4.0.20

MySQL AB MySQL 4.0.2

MySQL AB MySQL 4.0.18

MySQL AB MySQL 4.0.15

MySQL AB MySQL 4.0.14

MySQL AB MySQL 4.0.13

MySQL AB MySQL 4.0.12

MySQL AB MySQL 4.0.11-gamma

MySQL AB MySQL 4.0.11

MySQL AB MySQL 4.0.10

MySQL AB MySQL 4.0.1

MySQL AB MySQL 4.0.0

不受影響系統(tǒng):

MySQL AB MySQL 4.1.10a

MySQL AB MySQL 4.0.24

總結(jié)

以上是生活随笔為你收集整理的mysql函数创建与使用_mysql function函数创建与应用方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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