MySQL儲存過程例項

2021-05-05 01:14:40 字數 1872 閱讀 3222

9.3  mysql儲存過程

mysql 5.0以後的版本開始支援儲存過程,儲存過程具有一致性、高效性、安全性和體系結構等特點,本節將通過具體的例項講解php是如何操縱mysql儲存過程的。

例項261:儲存過程的建立

這是乙個建立儲存過程的例項

錄影位置:光碟/mingrisoft/09/261

例項說明

為了保證資料的完整性、一致性,提高應用的效能,常採用儲存過程技術。mysql 5.0之前的版本並不支援儲存過程,隨著mysql技術的日趨完善,儲存過程將在以後的專案中得到廣泛的應用。本例項將介紹在mysql 5.0以後的版本中建立儲存過程。

技術要點

乙個儲存過程包括名字、引數列表,以及可以包括很多sql語句的sql語句集。下面為乙個儲存過程的定義過程:

create procedure proc_name (in parameter integer)

begin

declare variable varchar(20);

if parameter=1 then

set variable='mysql';

else

set variable='php';

end if;

insert into tb (name) values (variable);

end;

mysql中儲存過程的建立以關鍵字create procedure開始,後面緊跟儲存過程的名稱和引數。mysql的儲存過程名稱不區分大小寫,例如proce1()和proce1()代表同乙個儲存過程名。儲存過程名不能與mysql資料庫中的內建函式重名。

儲存過程的引數一般由3部分組成。第一部分可以是in、out或inout。in表示向儲存過程中傳入引數;out表示向外傳出引數;inout表示定義的引數可傳入儲存過程,並可以被儲存過程修改後傳出儲存過程,儲存過程預設為傳入引數,所以引數in可以省略。第二部分為引數名。第三部分為引數的型別,該型別為mysql資料庫中所有可用的字段型別,如果有多個引數,引數之間可以用逗號進行分割。

mysql儲存過程的語句塊以begin開始,以end結束。語句體中可以包含變數的宣告、控制語句、sql查詢語句等。由於儲存過程內部語句要以分號結束,所以在定義儲存過程前應將語句結束標誌「;」更改為其他字元,並且該字元在儲存過程中出現的機率也應該較低,可以用關鍵字delimiter更改。例如:

mysql>delimiter //

儲存過程建立之後,可用如下語句進行刪除,引數proc_name指儲存過程名。

drop procedure proc_name

實現過程

(1)mysql儲存過程是在「命令提示符」下建立的,所以首先應該開啟「命令提示符」視窗。

(2)進入「命令提示符」視窗後,首先應該登入mysql資料庫伺服器,在「命令提示符」下輸入如下命令:

mysql –u使用者名稱 –p使用者密碼

(3)更改語句結束符號,本例項將語句結束符更改為「//」。**如下:

delimiter //

(4)建立儲存過程前應首先選擇某個資料庫。**如下:

use 資料庫名

(5)建立儲存過程。

(6)通過call語句呼叫儲存過程。

舉一反三

根據本例項,讀者可以:

利用儲存過程實現多表查詢。

利用儲存過程對商品資訊進行降序輸出。

MYSQL儲存過程例項

2 建立租戶公升級儲存過程 drop procedure if exists helpdesk cater upgradetenantdb delimiter create procedure helpdesk cater upgradetenantdb begin declare done int...

mysql儲存過程例項

儲存過程的作用 第一 儲存過程因為sql語句已經預編繹過了,因此執行的速度比較快。第二 儲存過程可以接受引數 輸出引數 返回單個或多個結果集以及返回值。可以向程式返回錯誤原因。第三 儲存過程執行比較穩定,不會有太多的錯誤。只要一次成功,以後都會按這個程式執行。第四 儲存過程主要是在伺服器上執行,減少...

mysql 儲存過程例項

引數分為 in out inout in是輸入引數,在儲存過程中不可修改,out是輸出引數,inout是輸入輸出引數 begin 當前日期 declare v curr date varchar 10 mysql中宣告變數時,沒有類似於oracle裡面的rowtype方式 當前時間 declare ...