1. 程式人生 > >MySQL帶引數的儲存過程小例子

MySQL帶引數的儲存過程小例子

儲存過程P_GET_CLASS_NAME是根據輸入的班級號判斷班級名稱

儲存過程P_INSERT_STUDENT是接收輸入的學生資訊,最終將資訊插入學生表。

DROP PROCEDURE IF EXISTS `P_GET_CLASS_NAME`;
CREATE PROCEDURE P_GET_CLASS_NAME(IN ID int,OUT NAME VARCHAR(50))
BEGIN
    IF(ID = 1) THEN 
          SET NAME = '一班';
    END IF;
    IF(ID = 2) THEN 
          SET NAME = '二班';
    END IF;
END;


DROP PROCEDURE IF EXISTS `P_INSERT_STUDENT`;
CREATE PROCEDURE P_INSERT_STUDENT(IN ID INT,IN NAME VARCHAR(10),IN CLASSNO INT,IN BIRTH DATETIME)
BEGIN
     SET @ID = ID;
     SET @NAME = NAME;
     SET @CLASSNO = CLASSNO;
     SET @BIRTH = BIRTH;
     SET @CLASSNAME = NULL;
     CALL P_GET_CLASS_NAME(@CLASSNO,@CLASSNAME);
     
     SET @insertSql = CONCAT('INSERT INTO TBL_STUDENT VALUES(?,?,?,?)');
     PREPARE stmtinsert FROM @insertSql;
     EXECUTE stmtinsert USING @ID,@NAME,@CLASSNAME,@BIRTH;
     DEALLOCATE PREPARE stmtinsert;
END;

CALL P_INSERT_STUDENT(1,'xy',1,'2012-10-01 10:20:01');

在第二個儲存過程中

①利用SET聲明瞭引數,呼叫了第一個儲存過程

②在第一個儲存過程中的NAME引數是輸出引數,所以@CLASSNAME這個引數在呼叫完第一個過程後就被附值

③最終利用CONCAT拼接SQL語句並傳入引數執行SQL語句

CALL P_INSERT_STUDENT(1,'xy',1,'2012-10-01 10:20:01');呼叫儲存過程

感覺有幫助請您賞一杯茶錢,金額隨意。您的鼓勵是我寫作的動力。


我的新微信公眾號【IT徐胖子】,請您關注!


相關推薦

MySQL引數儲存過程例子

儲存過程P_GET_CLASS_NAME是根據輸入的班級號判斷班級名稱 儲存過程P_INSERT_STUDENT是接收輸入的學生資訊,最終將資訊插入學生表。 DROP PROCEDURE IF EXISTS `P_GET_CLASS_NAME`; CREATE PROCED

MySQL有關引數儲存過程

前言小案例:       輸入輸出引數:記錄MYSQL儲存過程中的關鍵語法:DELIMITER // 宣告語句結束符,用於區分; CEATE PROCEDURE demo_in_parameter(IN p_in int) 宣告儲存過程 BEGIN …. END 儲存過程開始

T-SQL 引數儲存過程

建立帶引數的儲存過程 1 use StudentManager 2 go 3 if exists(select * from sysobjects where name='usp_ScoreQuery4') 4 drop procedure usp_ScoreQuery4 5 go 6 c

oracle輸入輸出引數儲存過程(包括sql分頁功能)

記錄一下,免得以後忘記了又要到處去找。 begin /*這裡不能直接執行select語句但可以直接執行update、delete、insert語句*/ end裡面不能接執行select語句,宣告會話級臨時表必須有“execute immediate 'TRUNCATE TABLE 表名';”這一句不然其他的s

MySQL】建立儲存過程的一點

背景 今天學習到了MySQL儲存過程的建立和使用,遇到了一點小坑 命令列小坑 一開始我使用的是命令列建立儲存過程(該儲存過程為返回資料表中最大年齡的使用者id) 程式碼如下 DELIMITER // CREATE PROCEDURE Largest_Age ( OUT Large

mybatis呼叫儲存過程例子,含輸入輸出引數

首先定義一個MySQL儲存過程: DROP PROCEDURE  IF  EXISTS test ; CREATE PROCEDURE test (IN p1  VARCHAR(26), OUT pResult VARCHAR(512)) BEGIN    SET pR

mysql中的儲存過程之無引數,in、out、inout引數的講解

首先建立三個測試表: 如下: user表裡邊的欄位為userId,userName 使用者表 dept表裡邊的欄位為deptId,deptName部門表 other表裡邊的欄位為otherId,otherName 其他表 建立無引數儲存 create procedure 你

mysql中 建立儲存過程增強(結果從sql語句返回)

一、In只有輸入引數情況 DELIMITER $ //宣告 create procedure pro_selectById( IN  num int)    //一個引數,無返回值 begin select * from user where id =

mysql中 建立儲存過程

1、定義IF迴圈以及呼叫書寫格式    DELIMITER $     ->  create procedure pro_IF(IN num INT,OUT str varchar(30))     ->

mysql分頁儲存過程一步一步實現

1.  CREATE DEFINER=`root`@`localhost` PROCEDURE `P_HoverTreePages`( IN `TableName` VARCHAR(200), IN `FieldList` VARCHAR(2000) , IN `Pr

MySql中建立儲存過程

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

MySQL基礎值 儲存過程和函式

一、建立儲存過程和函式 什麼是建立儲存過程和函式?    就是將經常使用的一組SQL語句組合在一起,並將這些SQL語句當做一個整體儲存在MYSQL伺服器中。 建立儲存過程的語句是:CREATE  PROCEDURE   建立儲存函式的語句是:CREATE  FU

Mysql簡單的儲存過程怎麼寫

//建立儲存過程 CREATE PROCEDURE userData( IN id INT ) BEGIN SELECT * from userdata WHERE userflag = id; END; 其中IN是傳進去的變數; drop procedure userData;//銷燬

Oracle中的儲存過程簡單例子

---建立表 create table TESTTABLE (   id1  VARCHAR2(12),   name VARCHAR2(32) ) select t.id1,t.name from TESTTABLE t insert into TESTTABLE

MySQL-SQLyog執行儲存過程儲存函式等

1.開啟SQLyog在目錄樹-函式(儲存過程)資料夾上右鍵,建立函式(建立儲存過程) 2.按照MySQL定義函式的規則,新定義一個函式:   3. 然後新建查詢編輯器,呼叫自定義的函式。 命令:SELECT function_name(params1, ...),函式名稱

mysql資料庫--mysql函式及儲存過程

函式 函式:將一段程式碼封裝到一個結構中,在需要執行程式碼塊的時候,呼叫結構執行即可(程式碼複用) 函式分為兩類:系統函式和自定義函式 系統函式: 系統定義好的函式,直接呼叫即可。任何函式都有返回值,因此函式的呼叫是通過select呼叫。 mysql中字串基本操作單位(最常見的

MySQL 筆記8 -- 儲存過程和索引

MySQL 筆記8 – 儲存過程和索引 MySQL 系列筆記是筆者學習、實踐MySQL資料庫的筆記 課程連結: MySQL 資料庫基礎入門教程 參考文件: MySQL 官方文件 SQL 教程 一、儲存過程 1、儲存過程 一組可程式設計的函式,

T-SQL 有引數儲存過程的建立與執行

1 use StudentManager 2 go 3 if exists(select * from sysobjects where name='usp_ScoreQuery2') 4 drop procedure usp_ScoreQuery2 5 go 6 --建立帶引數的儲存過程

MySQL資料庫之儲存過程

儲存過程(Stored Procedure):一組可程式設計的函式,是為了完成特定功能的SQL語句集,經編譯建立並儲存在資料庫中,使用者可通過指定儲存過程的名字並給定引數(需要時)來呼叫執行。 為什麼

MySQL中的儲存過程和函式使用詳解

一.對待儲存過程和函式的態度 在實際專案中應該儘量少用儲存過程和函式,理由如下: 1.移植性差,在MySQL中的儲存過程移植到sqlsever上就不一定可以用了。 2.除錯麻煩,在db中報一個錯誤和在應用層報一個錯誤不是一個概念,那將是毀滅性打擊,直接一個error:1045什麼的更本毫無頭緒。 3.擴充套件