欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在MySQL中創(chuàng)建帶有IN和OUT參數(shù)的存儲(chǔ)過(guò)程的方法

 更新時(shí)間:2015年06月25日 11:58:28   投稿:goldensun  
這篇文章主要介紹了在MySQL中創(chuàng)建帶有IN和OUT參數(shù)的存儲(chǔ)過(guò)程的方法,在一定程度上簡(jiǎn)化了操作,需要的朋友可以參考下

 在 MySQL 中創(chuàng)建儲(chǔ)存過(guò)程的語(yǔ)法很難記,除非你經(jīng)常跟儲(chǔ)存過(guò)程打交道,原因很簡(jiǎn)單,語(yǔ)法不是什么小笑話(huà)。如果你通過(guò)命令行控制 MySQL,你需要記住準(zhǔn)確的語(yǔ)法。一個(gè)快速示例可以很好的幫助你做到這點(diǎn)。在MySQL 入門(mén)教程中,我們能夠看到很多關(guān)于如何創(chuàng)建儲(chǔ)存過(guò)程 和如何利用 IN 和 OUT 參數(shù)調(diào)用存儲(chǔ)過(guò)程的示例。這些示例都很簡(jiǎn)單,能夠很好的幫助你理解 MySQL 中創(chuàng)建帶參數(shù)存儲(chǔ)過(guò)程的語(yǔ)法。這些示例已在 MySQL 5.5 中通過(guò)測(cè)試。我們將用下面的雇員表創(chuàng)建并測(cè)試這些儲(chǔ)存過(guò)程:
 

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)建和使用帶In參數(shù)的MySQL存儲(chǔ)過(guò)程
下面是一個(gè)命令行方式創(chuàng)建MySQL存過(guò)的例子,我們根據(jù) department從employee表中獲取一個(gè)總數(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 ;
首先我們改變默認(rèn)的分隔符為“//”來(lái)作為存儲(chǔ)過(guò)程結(jié)束的標(biāo)識(shí),隨后再恢復(fù)默認(rèn)值。使用“usp”前綴是區(qū)分系統(tǒng)存過(guò)過(guò)程和用戶(hù)自定義存儲(chǔ)過(guò)程的最佳實(shí)踐。現(xiàn)在你可以在MySQL命令行像這樣來(lái)調(diào)用存過(guò):
 

mysql> call usp_totalEmployeeByDeparment(2);
+-------+
| total |
+-------+
|   1 |
+-------+
1 row in set (0.06 sec)

創(chuàng)建和使用帶IN和OUT參數(shù)的存儲(chǔ)過(guò)程

在這個(gè)MySQL例子中,我們創(chuàng)建了一個(gè)IN和一個(gè)OUT參數(shù)的存儲(chǔ)過(guò)程 usp_GetEmployeeName。當(dāng)調(diào)用這個(gè)存儲(chǔ)過(guò)程時(shí),你需要傳遞2個(gè)參數(shù):id和name,一個(gè)作為輸入?yún)?shù)id,另外一個(gè)作為輸出參數(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)用存過(guò):
 
mysql> select @name;
+-------+
| @name |
+-------+
| Jack |
+-------+
1 row in set (0.00 sec)

這就是怎樣從命令行方式創(chuàng)建和調(diào)用存儲(chǔ)過(guò)程的所有內(nèi)容,在這個(gè)教程中,我們創(chuàng)建了帶IN和OUT參數(shù)的存儲(chǔ)過(guò)程多個(gè)例子。這是記住MySQL數(shù)據(jù)庫(kù)存過(guò)語(yǔ)法的最好方式。

相關(guān)文章

最新評(píng)論