手把手教你mysql(十四)預存程序

來源:互聯網
上載者:User

和參數不同的是,預存程序是

而參數是

 

例: mysql>DELIMITER $$

CREATE FUNCTION fun_book(bookId INT)

RETURNS VARCHAR(20)

BEGIN

RETURN(SELECT bookName FROM t_book WHERE id=bookId);

END;

$$

DELIMITER ;

Mysql>SELECT fun_book(1);

因為儲存函數有返回值,所以用SELECT,不能用CALL.


四: 調用預存程序和函數

4.1

CALL sp_name( [parameter[,...]] )

Mysql>CALL pro_book(1);

4.2     

fun_name( [parameter[,...]] )

Mysql>SELECT fun_book(1);

 

五: 查看預存程序和函數

SHOW { PROCEDURE | FUNCTION } STATUS [ LIKE ‘pattern’ ] ;

Mysql>

SHOW PROCEDURE STATUS  LIKE 'pro_book';

 

5.2     

SHOW CREATE { PROCEDURE | FUNCTION } sp_name ;

Mysql>SHOW CREATE FUNCTION fun_book;

 

5.3 從information_schema.Routines 表中查看預存程序和函數的資訊

Mysql>USE information_scherma;

Mysql>SELECT * from Routines;


 

六: 修改預存程序和函數

ALTER { PROCEDURE | FUNCTION } sp_name [ characteristic ... ]

characteristic :

{ CONTAINS SQL } NO SQL | READS SQL DATA | MODIFIES SQL DATA }

| SQL SECURITY { DEFINER | INVOKER }

| COMMENT ‘string’

其中,sp_name 參數表示預存程序或函數的名稱,characteristic 參數指定函數的特性

CONTAINS SQL 表示子程式包含SQL 陳述式,但不包含讀或寫資料的語句

NO SQL 表示子程式中不包含SQL 陳述式

READS SQL DATA表示子程式中包含資料的語句

 MODIFIES SQL DATA 表示子程式中包含寫資料的語句

SQL SECURITY{ DEFINER | INVODER } 指明誰有許可權來執行。

DEFINER 表示只有定義者自己才能夠執行;

INVODER 表示調用者可以執行。

COMMENT ‘string’ 是注釋資訊。

 

例: mysql>ALTER PROCEDURE `pro_book` COMMENT '測試';

修改完後我們來查看一下是否修改成功

Mysql>SHOW PROCEDURE STATUS LIKE `pro_book`;


其實不怎麼推薦用Alter來修改因為Alter

 

七: 刪除預存程序和函數

DROP {PROCEDURE | FUNCTION } sp_name ;

例: mysql>DROP PROCEDURE `pro_book`;

Mysql>DROP FUNCTION `fun_book`;


八: 預存程序和儲存函數的詳細區別

 預存程序是使用者定義的一系列sql語句的集合,涉及特定表或其它對象的任務,使用者可以調用預存程序,而函數通常是資料庫已定義的方法,它接收參數並返回某種類型的值並且不涉及特定使用者表。

    預存程序和函數存在以下幾個區別:

    1)一般來說,預存程序實現的功能要複雜一點,而函數的實現的功能針對性比較強。

 

 

九: 總結

今天為大家帶來了有關預存程序的知識,大家自己消化練習下,下節為大家帶來遊標,變數,流程式控制制的相關知識,謝謝大家!


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.