MySQL的存储过程不好用,一般在应用开发过程中不建议使用。但有时候在数 据迁移等环境中,特别涉及到复杂点的逻辑处理,就需要存储过程的配合了,当 然,用其他语言写程序实现也是可以的,不过效率估计没有直接在数据库中操作 高。
有时候数据所在的表是不确定的,需要根据实际情况临时决定表名, 这时候就是动态SQL的用武之地了,以下示例展示了在一次数据导出的过程中使用 动态SQL的存储过程例子:
delimiter // CREATE PROCEDURE `proc_rt_imp_group`() BEGIN DECLARE done INT DEFAULT FALSE; declare v_tid,v_ptable int; declare v_tablename VARCHAR(32); DECLARE cur_t CURSOR FOR select t.tid,t.ptable from pw_threads_rt t; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur_t; read_loop: LOOP FETCH cur_t INTO v_tid,v_ptable; IF done THEN LEAVE read_loop; END IF; if v_ptable=0 then set v_tablename = 'pw_posts'; else set v_tablename = concat('pw_posts',v_ptable); end if; set @updatesql =CONCAT('insert into pw_posts_rt select * from ',v_tablename,' where tid= ',v_tid); PREPARE sqltext from @updatesql; execute sqltext; END LOOP; CLOSE cur_t; END// delimiter ;
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索存储过程
, 动态
, delimiter
, updatesql操作
, updatesql
declare
mysql存储过程动态sql、mysql存储过程 动态表、mysql存储过程拼接sql、mysql存储过程执行sql、mysql存储过程中拼sql,以便于您获取更多的相关知识。
时间: 2024-11-03 04:46:33