国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

在MySQL中創建帶有IN和OUT參數的存儲過程的方法

2024-07-24 13:07:32
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了在MySQL中創建帶有IN和OUT參數的存儲過程的方法,在一定程度上簡化了操作,需要的朋友可以參考下

在 MySQL 中創建儲存過程的語法很難記,除非你經常跟儲存過程打交道,原因很簡單,語法不是什么小笑話。如果你通過命令行控制 MySQL,你需要記住準確的語法。一個快速示例可以很好的幫助你做到這點。在MySQL 入門教程中,我們能夠看到很多關于如何創建儲存過程 和如何利用 IN 和 OUT 參數調用存儲過程的示例。這些示例都很簡單,能夠很好的幫助你理解 MySQL 中創建帶參數存儲過程的語法。這些示例已在 MySQL 5.5 中通過測試。我們將用下面的雇員表創建并測試這些儲存過程:

 

 
  1. mysql> select * from employee; 
  2. +--------+----------+---------+--------+ 
  3. | emp_id | emp_name | dept_id | salary | 
  4. +--------+----------+---------+--------+ 
  5. | 103 | Jack | 1 | 1400 | 
  6. | 104 | John | 2 | 1450 | 
  7. | 108 | Alan | 3 | 1150 | 
  8. | 107 | Ram | NULL | 600 | 
  9. +--------+----------+---------+--------+ 
  10. 4 rows in set (0.22 sec) 

創建和使用帶In參數的MySQL存儲過程

下面是一個命令行方式創建MySQL存過的例子,我們根據 department從employee表中獲取一個總數,dept_id是department表的 外鍵。

 

 
  1. mysql> DELIMITER // 
  2. mysql> create procedure usp_totalEmployeeByDeparment(IN id INT
  3. -> begin 
  4. -> select count(*) as total from employee where dept_id = id; 
  5. -> end// 
  6. Query OK, 0 rows affected (0.00 sec) 

mysql> DELIMITER ;

首先我們改變默認的分隔符為“//”來作為存儲過程結束的標識,隨后再恢復默認值。使用“usp”前綴是區分系統存過過程和用戶自定義存儲過程的最佳實踐。現在你可以在MySQL命令行像這樣來調用存過:

 

 
  1. mysql> call usp_totalEmployeeByDeparment(2); 
  2. +-------+ 
  3. | total | 
  4. +-------+ 
  5. | 1 | 
  6. +-------+ 
  7. 1 row in set (0.06 sec) 

創建和使用帶IN和OUT參數的存儲過程

在這個MySQL例子中,我們創建了一個IN和一個OUT參數的存儲過程 usp_GetEmployeeName。當調用這個存儲過程時,你需要傳遞2個參數:id和name,一個作為輸入參數id,另外一個作為輸出參數返回結果。

 

 
  1. mysql> DELIMITER // 
  2. mysql> create procedure usp_GetEmployeeName(IN id INTOUT name VARCHAR(20)) 
  3. -> begin 
  4. -> select emp_name into name from employee where emp_id = id; 
  5. -> end// 
  6. Query OK, 0 rows affected (0.52 sec) 
  7.  
  8. mysql> DELIMITER ; 
  9.  
  10. mysql> call usp_GetEmployeeName(103, @name); 
  11. Query OK, 1 row affected (0.05 sec) 
  12. 以MySQL命令行方式調用存過: 
  13.  
  14. mysql> select @name
  15. +-------+ 
  16. | @name | 
  17. +-------+ 
  18. | Jack | 
  19. +-------+ 
  20. 1 row in set (0.00 sec) 

這就是怎樣從命令行方式創建和調用存儲過程的所有內容,在這個教程中,我們創建了帶IN和OUT參數的存儲過程多個例子。這是記住MySQL數據庫存過語法的最好方式。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武胜县| 常熟市| 石林| 四子王旗| 陆川县| 罗平县| 环江| 罗源县| 沧源| 花莲县| 开封市| 山丹县| 凤台县| 监利县| 宁波市| 永顺县| 保靖县| 临海市| 社会| 竹北市| 米林县| 灵璧县| 开封市| 十堰市| 夏邑县| 九寨沟县| 周宁县| 合阳县| 大余县| 宝丰县| 康保县| 蓬莱市| 井冈山市| 威远县| 新安县| 达州市| 汾阳市| 都昌县| 乐陵市| 诸城市| 调兵山市|