程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql 存儲過程輸入輸出參數示例,mysql存儲過程

mysql 存儲過程輸入輸出參數示例,mysql存儲過程

編輯:MySQL綜合教程

mysql 存儲過程輸入輸出參數示例,mysql存儲過程


drop PROCEDURE if exists my_procedure; 
create PROCEDURE my_procedure(in my_id int,out my_name char) 
BEGIN  
 select list_name into my_name from aa_list where list_id=my_id; 
end; 
call my_procedure(24,@a); 
select @a;

mysql存儲過程可以不可以輸入多個參數的? 如果可以給一個例子

mysql> DELIMITER //
mysql> CREATE PROCEDURE HelloWorld2(
-> IN vUserName VARCHAR(10),
-> OUT vOutValue VARCHAR(10),
-> INOUT vInOutValue VARCHAR(10))
-> BEGIN
-> SELECT CONCAT('Hello ', vUserName);
-> SET vOutValue = 'A';
-> SET vInOutValue = 'B';
-> END//
Query OK, 0 rows affected (0.00 sec)

mysql> call HelloWorld2('Edward', @a, @b)//
+-----------------------------+
| CONCAT('Hello ', vUserName) |
+-----------------------------+
| Hello Edward |
+-----------------------------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

mysql> select @a//
+------+
| @a |
+------+
| A |
+------+
1 row in set (0.00 sec)

mysql> select @b//
+------+
| @b |
+------+
| B |
+------+
1 row in set (0.00 sec)
參考資料:hi.baidu.com/...1.html
 

mysql 存儲過程參數問題

表名是不可以直接用變量,你可以多看看 PREPARE用法。
eg:
DROP PROCEDURE IF EXISTS `table`;
DELIMITER //
CREATE PROCEDURE `table`(IN tname varchar(64))
BEGIN
SET @sqlcmd = CONCAT('SELECT count(1) FROM ', tname);
PREPARE stmt FROM @sqlcmd;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END//
DELIMITER ;
call table('test');
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved