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

标签 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 ;

最佳答案

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

在您的存储过程中声明一个CURSOR。 执行游标,然后用输出准备一个语句:

PREPARE stmt FROM @sql;
EXECUTE stmt USING @myvar;

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

关于mysql - 如何使用过程运行存储在 mysql 表中的 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197293/

相关文章:

php - 不明确的 PDO 声明 - Php?

java - 从 MySQL 获取数据到 Android 应用程序

php - HTML PHP MYSQL 如何检查数据是否存在然后确认更新

mysql - 不返回所有结果之间的 SQL

java - 如何从与其他表匹配的 1 个表中删除一些重复行

mysql 过程没有返回正确的值

php - 如何在 MySQL 存储过程中计算这些日期差、乘法?

php - 向数据库中插入大量记录

php - 获取聊天数据并按接收者和发送者 ID 排序

mysql - 带有内连接的 SQL max()