MySQL中怎么創(chuàng)建存儲過程,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
目前創(chuàng)新互聯(lián)建站已為成百上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管運營、企業(yè)網(wǎng)站設(shè)計、安義網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
mysql創(chuàng)建存儲過程和函數(shù)
一個存儲程序是可以被存儲在服務(wù)器中的一套SQL語句??梢酝ㄟ^客戶端用CREATE PROCEDURE和CREATE FUNCTION 創(chuàng)建一個存儲過程或函數(shù)。在客戶端通過CALL語句 調(diào)用所創(chuàng)建的存數(shù)過程或函數(shù)。
語法:
創(chuàng)建存儲子程序:
01
CREATE PROCEDURE sp_name ([proc_parameter[,...]])
02
[characteristic ...] routine_body
03
CREATE FUNCTION sp_name ([func_parameter[,...]])
04
RETURNS type
05
[characteristic ...] routine_body
06
proc_parameter:
07
[ IN | OUT | INOUT ] param_name type
08
func_parameter:
09
param_name type
10 www.2cto.com
type:
11
Any valid MySQL data type
12
characteristic:
13
LANGUAGE SQL
14
| [NOT] DETERMINISTIC
15
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
16
| SQL SECURITY { DEFINER | INVOKER }
17
| COMMENT 'string'
18
routine_body:
19
Valid SQL procedure statement or statements
默認(rèn)地,子程序與當(dāng)前關(guān)聯(lián)。要明確地把子程序與一個給定數(shù)據(jù)庫關(guān)聯(lián)起來,可以在創(chuàng)建子程序的時候指定其名字為db_name.sp_name。在 程序被定義的時候,用客戶端delimiter命令來把語句定界符從 ;變?yōu)?/。這就允許用在 程序體中的;定界符被傳遞到服務(wù)器而不是被mysql自己來解釋。例如:
01
mysql> delimiter //
02
mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
03
-> BEGIN
04
-> SELECT COUNT(*) INTO param1 FROM t;
05
-> END www.2cto.com
06
-> //
07
Query OK, 0 rows affected (0.00 sec)
08
mysql> delimiter ;
09
mysql> CALL simpleproc(@a);
10
Query OK, 0 rows affected (0.00 sec)
11
mysql> SELECT @a;
12
+------+
13
| @a |
14
+------+
15
| 3 |
16
+------+
17
1 row in set (0.00 sec)
01
mysql> delimiter //
02
mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)
03
-> RETURN CONCAT('Hello, ',s,'!');
04
-> //
05
Query OK, 0 rows affected (0.00 sec)
06
mysql> delimiter ;
07 www.2cto.com
mysql> SELECT hello('world');
08
+----------------+
09
| hello('world') |
10
+----------------+
11
| Hello, world! |
12
+----------------+
13
1 row in set (0.00 sec)
看完上述內(nèi)容,你們掌握mysql中怎么創(chuàng)建存儲過程的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!