mysql 預存程序執行個體

來源:互聯網
上載者:User

mysql 預存程序執行個體
技術要點

一個預存程序包括名字、參數列表,以及可以包括很多SQL語句的SQL語句集。下面為一個預存程序的定義過程:

create procedure proc_name (in parameter integer)begindeclare variable varchar(20);if parameter=1 thenset variable='MySQL';elseset 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語句調用預存程序。

舉一反三

 

-- 建表
use test;
create table user(
 id mediumint(8) unsigned not null auto_increment,
name char(15) not null default '',
pass char(32) not null default '',
note text not null,
primary key (id)
)engine=Innodb charset=utf8;

 

-- 樣本一
delimiter //
create procedure proc_name (in parameter integer)
begin
if parameter=0 then
select * from user order by id asc;
else
select * from user order by id desc;
end if;
end;
//

delimiter ;
show warnings;
call proc_name(1);
call proc_name(0);


-- 樣本二
drop procedure proc_name;
delimiter //
create procedure proc_name (in parameter integer)
begin
declare variable varchar(20);
if parameter=1 then
set variable='Windows';
else
set variable='Linux';
end if;
select parameter;
end;
//

delimiter ;
show warnings;
call proc_name(1);
call proc_name(0);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.