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.
- 下一篇: 初探领域驱动设计(1)为复杂业务而生