MySql預存程序簡單一實例

來源:互聯網
上載者:User

標籤:not   sql預存程序   查看   select   int   nbsp   建立   tab   簡單   

轉自:http://www.cnblogs.com/zhuawang/p/4185302.html

********************* 建立表 *****************************/delimiter //DROP TABLE if exists test //CREATE TABLE test(  id int(11) NULL) ///********************** 最簡單的一個預存程序 **********************/drop procedure if exists sp// CREATE PROCEDURE sp() select 1 //  call sp()// /********************* 帶輸入參數的預存程序  *******************/drop procedure if exists sp1 //create procedure sp1(in p int)comment ‘insert into a int value‘begin  /* 定義一個整形變數 */  declare v1 int;    /* 將輸入參數的值賦給變數 */  set v1 = p;    /* 執行插入操作 */  insert into test(id) values(v1);end///* 調用這個預存程序  */call sp1(1)///* 去資料庫查看調用之後的結果 */select * from test// /****************** 帶輸出參數的預存程序 ************************/drop procedure if exists sp2 //create procedure sp2(out p int)/*這裡的DETERMINISTIC子句表示輸入和輸出的值都是確定的,不會再改變.我一同事說目前mysql並沒有實現該功能,因此加不加都是NOT DETERMINISTIC的*/DETERMINISTICbegin  select max(id) into p from test;end///* 調用該預存程序,注意:輸出參數必須是一個帶@符號的變數 */call sp2(@pv)///* 查詢剛剛在預存程序中使用到的變數 */select @pv//                                                    /******************** 帶輸入和輸出參數的預存程序 ***********************/drop procedure if exists sp3 //create procedure sp3(in p1 int , out p2 int)begin  if p1 = 1 then    /* 用@符號加變數名的方式定義一個變數,與declare類似 */    set @v = 10;  else    set @v = 20;  end if;    /* 語句體內可以執行多條sql,但必須以分號分隔 */  insert into test(id) values(@v);  select max(id) into p2 from test;  end///* 調用該預存程序,注意:輸入參數是一個值,而輸出參數則必須是一個帶@符號的變數 */call sp3(1,@ret)//select @ret///***************** 既做輸入又做輸出參數的預存程序 ***************************************/drop procedure if exists sp4 //create procedure sp4(inout p4 int)begin   if p4 = 4 then      set @pg = 400;   else      set @pg = 500;   end if;       select @pg;   end//call sp4(@pp)///* 這裡需要先設定一個已賦值的變數,然後再作為參數傳入 */set @pp = 4//call sp4(@pp)///********************************************************/

 

MySql預存程序簡單一實例

聯繫我們

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