mysql过程:如何使用表名变量
我已经构建了一个MySQL过程。 我必须在过程中定义v_表变量 谁能帮我?mysql过程:如何使用表名变量,mysql,variables,store,Mysql,Variables,Store,我已经构建了一个MySQL过程。 我必须在过程中定义v_表变量 谁能帮我? 谢谢 保罗 存储过程中的表名和列名都不能是动态的。您需要将sql语句组装为字符串,并使用语句执行它。因此,基本上,您将从查询中创建一个准备好的语句并执行它 链接文档也包含示例。存储过程中的表名和列名都不能是动态的。您需要将sql语句组装为字符串,并使用语句执行它。因此,基本上,您将从查询中创建一个准备好的语句并执行它 链接的文档还包含示例。是的,您可以。但是,如果您计划每次迭代执行一次更新,那么请确保调用所有3个命令,包
谢谢 保罗
存储过程中的表名和列名都不能是动态的。您需要将sql语句组装为字符串,并使用语句执行它。因此,基本上,您将从查询中创建一个准备好的语句并执行它
链接文档也包含示例。存储过程中的表名和列名都不能是动态的。您需要将sql语句组装为字符串,并使用语句执行它。因此,基本上,您将从查询中创建一个准备好的语句并执行它
链接的文档还包含示例。是的,您可以。但是,如果您计划每次迭代执行一次更新,那么请确保调用所有3个命令,包括迭代中的deallocate prepare,否则mysql可能会达到可配置的prepared语句限制。为SELECT concat('update',table_name','set',column_name','=replace(',column_name','','')声明cur1游标作为信息模式中的sq。
列
C,其中表模式='splotdb'和数据输入('char','nchar','ntext','nvarchar','text','varchar');声明未找到的继续处理程序SET done=TRUE;设置sq='';开放cur1;igmLoop:将cur1循环提取到sq中;如果完成了,则离开循环;如果结束;从sq制备stmt;执行stmt;解除分配准备stmt;末端环路;关闭cur1;(完)。这是不可读的,请编辑您的问题并将格式化代码放在那里。2.请提供准确的错误信息。是的,您可以。但是,如果您计划每次迭代执行一次更新,那么请确保调用所有3个命令,包括迭代中的deallocate prepare,否则mysql可能会达到可配置的prepared语句限制。为SELECT concat('update',table_name','set',column_name','=replace(',column_name','','')声明cur1游标作为信息模式中的sq。列
C,其中表模式='splotdb'和数据输入('char','nchar','ntext','nvarchar','text','varchar');声明未找到的继续处理程序SET done=TRUE;设置sq='';开放cur1;igmLoop:将cur1循环提取到sq中;如果完成了,则离开循环;如果结束;从sq制备stmt;执行stmt;解除分配准备stmt;末端环路;关闭cur1;(完)。这是不可读的,请编辑您的问题并将格式化代码放在那里。2.请提供准确的错误信息。
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
open cur1;
igmLoop: loop
fetch cur1 into v_column,v_table;
IF done THEN
LEAVE igmLoop;
END IF;
update v_table set v_column=replace(v_column,'Ã ','a`');
end loop igmLoop;
close cur1;
end