我正在开发一个简单的 WPF(C#) 应用程序,我将所有插入、更新和删除查询存储在一个表中。然后通过简单地选择然后使用 c# 中的 ExecuteNonQuery() 函数执行,这些查询将在服务器上一个接一个地执行。问题是,如果有大量查询,那么它会变得非常慢,有时由于网络连接而中断。 是否可以创建一个存储过程来执行存储在同一服务器上的表中的查询?
这是我到目前为止尝试过的一些代码。
DELIMITER $$ CREATE PROCEDURE `MyProc`(wo varchar(100)) BEGIN DECLARE x INT; DECLARE str text; set x = 0; select count(*) into x from tblqueries where isexecutedonserver = false and woid = wo; SET str = ''; REPEAT select `query` into str from tblqueries where id = 2976; SET x = x - 1; UNTIL x > 0 END REPEAT; ##select str; prepare stmt from @str; execute stmt; deallocate prepare stmt; END $$ DELIMITER ;
最佳答案
这很简单(就像谷歌搜索“mysql存储过程执行”一样简单)
在您的存储过程中声明一个CURSOR
。
执行游标,然后用输出准备一个语句:
PREPARE stmt FROM @sql;
EXECUTE stmt USING @myvar;
关于mysql - 如何使用过程运行存储在 mysql 表中的 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197293/