mysql 存储过程动态执行sql 例子
来源:互联网 发布:vs2010 mfc编程实例 编辑:程序博客网 时间:2024/05/20 05:26
DELIMITER $$;DROP PROCEDURE IF EXISTS `set_col_value`$$CREATE PROCEDURE `set_col_value` (InTargetYear VARCHAR(128), InTargetWeek VARCHAR(128), InCurrentYear VARCHAR(1000), InCurrentWeek VARCHAR(4000) )BEGIN DECLARE sql_str TEXT; SET sql_str = CONCAT('INSERT INTO res_sales_hotlead(group_id,sales_id,customer_id,year,WEEK,createuser,createtime)SELECT t.group_id,t.sales_id,t.customer_id,',InTargetYear,',',InTargetWeek,',','t.createuser,NOW() FROM res_sales_hotlead t WHERE t.year = ',InCurrentYear,' AND t.week = ',InCurrentWeek,''); SET @SQL=sql_str; PREPARE s1 FROM @sql; EXECUTE s1; DEALLOCATE PREPARE s1;END$$DELIMITER ;$$
注意两个地方,@SQL 是 系统内置的 的一个函数,把要执行的动态sql 赋值给 @SQL 动态拼接的sql 要用 CONCAT 函数 连接起来 , 如果 拼接的 sql 中的变量要添加引号 要用 CONCAT 函数处理 例如
SET v_sql_1= CONCAT('select count(a.concattype) from res_customer_info a left join car_staff b on b.staff_id=a.sales_id where 1=1 and a.concattype = 2 and a.auditflag = 1 and a.entitytype != 3 and UNIX_TIMESTAMP( a.createtime ) BETWEEN UNIX_TIMESTAMP(',CONCAT('"',starttime,'"'),') AND UNIX_TIMESTAMP(',CONCAT('"',endtime,'"'),')');
编译成功后call 存储过程名(参数一,参数二);调试的时候可以把变量用 select 变量名; 的方式打印。
- mysql 存储过程动态执行sql 例子
- mysql存储过程执行动态sql
- mysql存储过程执行动态sql
- mysql存储过程执行动态sql语句
- mysql 存储过程 执行动态sql
- mysql存储过程动态执行sql
- MySQL存储过程实现动态执行SQL
- mysql 存储过程动态执行sql
- SQL动态执行存储过程
- mysql 存储过程 根据参数 动态执行sql语句
- mysql存储过程执行动态sql语句并返回值
- 写MySQL存储过程实现动态执行SQL (转)
- MySQL 存储过程中执行动态 SQL 语句
- 写MySQL存储过程实现动态执行SQL (转)
- 写MySQL存储过程实现动态执行SQL (转)
- 写MySQL存储过程实现动态执行SQL
- 写MySQL存储过程实现动态执行SQL
- 写MySQL存储过程实现动态执行SQL
- Android 电源管理专题之获取和监测Dock状态和类型
- Windows Server 2008远程桌面端口的修改
- 查看linux系统调用表的地址
- js 时间操作
- 理清全表扫描和高水位,行预取的关系
- mysql 存储过程动态执行sql 例子
- spring 在java 获取bean
- Shell编程时出现"[: =: unary operator expected"解决
- PHP-FPM进程CPU 100%的原因及解决方案
- 热烈庆祝5kcms-k1成功发布
- spring security简单demo .
- VMware 给虚拟机上的系统扩充硬盘
- ubuntu上修改mysql默认字符编码出现的Job failed to start解决方法
- BIT1035 远古石碑