如何使用过程运行存储在mysql表中的mysql查询

时间:2012-02-08 16:22:13

标签: mysql

我正在开发一个简单的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 ;

请检查并告诉我哪里错了。

2 个答案:

答案 0 :(得分:3)

这很简单(就像谷歌搜索“mysql存储过程执行”)

在存储过程中声明CURSOR。 执行游标,然后使用输出

准备一个语句
PREPARE stmt FROM @sql;
EXECUTE stmt USING @myvar;

此代码将帮助您: MySQL Pass table name to cursor select

答案 1 :(得分:0)

听起来你需要的是一个观点。

MySQL Server 5.0中提供了视图(包括可更新视图)。视图是存储的查询,在调用时会生成结果集。视图充当虚拟表。 5.0.1及更高版本的二进制版本中提供了视图。

http://dev.mysql.com/doc/refman/5.0/en/views.html