mysql存储过程写法—动态参数运用
生活随笔
收集整理的这篇文章主要介绍了
mysql存储过程写法—动态参数运用
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
--删除
| 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会释放,!
转载于:https://www.cnblogs.com/jiligalaer/p/3962328.html
总结
以上是生活随笔为你收集整理的mysql存储过程写法—动态参数运用的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: json数据 提示框flash.
- 下一篇: Mysql 字符串处理函数