在MySQL中創(chuàng)建帶有IN和OUT參數(shù)的存儲過程的方法
在 MySQL 中創(chuàng)建儲存過程的語法很難記,除非你經(jīng)常跟儲存過程打交道,原因很簡單,語法不是什么小笑話。如果你通過命令行控制 MySQL,你需要記住準確的語法。一個快速示例可以很好的幫助你做到這點。在MySQL 入門教程中,我們能夠看到很多關(guān)于如何創(chuàng)建儲存過程 和如何利用 IN 和 OUT 參數(shù)調(diào)用存儲過程的示例。這些示例都很簡單,能夠很好的幫助你理解 MySQL 中創(chuàng)建帶參數(shù)存儲過程的語法。這些示例已在 MySQL 5.5 中通過測試。我們將用下面的雇員表創(chuàng)建并測試這些儲存過程:
mysql> select * from employee; +--------+----------+---------+--------+ | emp_id | emp_name | dept_id | salary | +--------+----------+---------+--------+ | 103 | Jack | 1 | 1400 | | 104 | John | 2 | 1450 | | 108 | Alan | 3 | 1150 | | 107 | Ram | NULL | 600 | +--------+----------+---------+--------+ 4 rows in set (0.22 sec)
下面是一個命令行方式創(chuàng)建MySQL存過的例子,我們根據(jù) department從employee表中獲取一個總數(shù),dept_id是department表的 外鍵。
mysql> DELIMITER // mysql> create procedure usp_totalEmployeeByDeparment(IN id INT) -> begin -> select count(*) as total from employee where dept_id = id; -> end// Query OK, 0 rows affected (0.00 sec)
mysql> DELIMITER ;
首先我們改變默認的分隔符為“//”來作為存儲過程結(jié)束的標識,隨后再恢復默認值。使用“usp”前綴是區(qū)分系統(tǒng)存過過程和用戶自定義存儲過程的最佳實踐?,F(xiàn)在你可以在MySQL命令行像這樣來調(diào)用存過:
mysql> call usp_totalEmployeeByDeparment(2); +-------+ | total | +-------+ | 1 | +-------+ 1 row in set (0.06 sec)
創(chuàng)建和使用帶IN和OUT參數(shù)的存儲過程
在這個MySQL例子中,我們創(chuàng)建了一個IN和一個OUT參數(shù)的存儲過程 usp_GetEmployeeName。當調(diào)用這個存儲過程時,你需要傳遞2個參數(shù):id和name,一個作為輸入?yún)?shù)id,另外一個作為輸出參數(shù)返回結(jié)果。
mysql> DELIMITER // mysql> create procedure usp_GetEmployeeName(IN id INT, OUT name VARCHAR(20)) -> begin -> select emp_name into name from employee where emp_id = id; -> end// Query OK, 0 rows affected (0.52 sec) mysql> DELIMITER ; mysql> call usp_GetEmployeeName(103, @name); Query OK, 1 row affected (0.05 sec) 以MySQL命令行方式調(diào)用存過: mysql> select @name; +-------+ | @name | +-------+ | Jack | +-------+ 1 row in set (0.00 sec)
這就是怎樣從命令行方式創(chuàng)建和調(diào)用存儲過程的所有內(nèi)容,在這個教程中,我們創(chuàng)建了帶IN和OUT參數(shù)的存儲過程多個例子。這是記住MySQL數(shù)據(jù)庫存過語法的最好方式。
- 詳解MySQL存儲過程的創(chuàng)建和調(diào)用
- mysql創(chuàng)建存儲過程及函數(shù)詳解
- MySQL之存儲過程按月創(chuàng)建表的方法步驟
- mysql創(chuàng)建存儲過程實現(xiàn)往數(shù)據(jù)表中新增字段的方法分析
- MySQL實現(xiàn)創(chuàng)建存儲過程并循環(huán)添加記錄的方法
- 深入mysql創(chuàng)建自定義函數(shù)與存儲過程的詳解
- MySQL動態(tài)創(chuàng)建表,數(shù)據(jù)分表的存儲過程
- MySQL5創(chuàng)建存儲過程的示例
- 查看MySQL中已經(jīng)創(chuàng)建的存儲過程及其定義
相關(guān)文章
mysql設置更改root密碼、mysql服務器的連接、mysql常用命令的圖解
這篇文章主要介紹了mysql設置更改root密碼、mysql服務器的連接、mysql常用命令,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-06-06MySQL 隨機函數(shù)獲取數(shù)據(jù)速度和效率分析
最近做項目,需要做一個從mysql數(shù)據(jù)庫中隨機取幾條數(shù)據(jù)出來??偹苤?,order by rand 會死人的。。因為本人對大數(shù)據(jù)量方面的只是了解的很少,無解,去找百度老師。。搜索結(jié)果千篇一律。特發(fā)到這里來,供大家學習,需要的朋友可以參考下2016-11-11Can’t open file:''[Table]mytable.MYI''
也許很多人遇到過類似Can’t open file: ‘[Table]mytable.MYI’ 這樣的錯誤信息,卻不知道怎么解決他,下面我們做個介紹,2011-01-01mysql查詢昨天 一周前 一月前 一年前的數(shù)據(jù)
這篇文章主要介紹了mysql查詢昨天 一周前 一月前 一年前的數(shù)據(jù)的方法,需要的朋友可以參考下2014-05-05