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.擴充套件