码迷,mamicode.com
首页 > 数据库 > 详细

mysql存储过程写法—动态参数运用

时间:2014-09-09 15:28:28      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:io   ar   div   sp   代码   html   on   c   line   

 --删除

双击代码全选
1
drop procedure if exists up_common_select

 

  --创建

双击代码全选
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE PROCEDURE `up_common_select`
  (
   in t_name varchar(50)
  )
  begin
   declare v_sql varchar(500);
   set v_sql= concat(‘select * from ‘,t_name);
   select v_sql;
--注意:prepare(预处理)execute stmt using @var,只能跟@var变量,declare和传入的变量不行!!!
   set @v_sql=v_sql;
   prepare stmt from @v_sql;
   EXECUTE stmt ;
   deallocate prepare stmt;
  end;

  --调用

双击代码全选
1
call up_common_select(‘admin_authority‘);

 

  注意事项

  1 mysql5.0.13之后支持在存储过程中调用prepare

  2 prepare stmt from ‘select * from ?‘; (错)

  mysql5.0.24,prepare尚不支持 表名做变量!

  解决方案:用 contat()函数,组合字符串

  3 execute stmt [using @var,@var2]

  必须是@var形式的变量,传入的参数变量,declare变量不行

  4. deallocate prepare stmt; 显式的释放prepare,如果不释放,mysql会释放,!

 

mysql存储过程写法—动态参数运用

标签:io   ar   div   sp   代码   html   on   c   line   

原文地址:http://www.cnblogs.com/jiligalaer/p/3962328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!