首页 > 解决方案 > 使用 mysql 动态查询返回已处理的行数

问题描述

我编写了一个 mysql 动态查询来将数据从一个数据库插入另一个数据库。这是查询。

CREATE DEFINER=`Definer1`@`%` PROCEDURE `PushData`()
BEGIN
Set @SqlQuery = 'Insert Into Table_A (Column1,Column2,Column3)
                    Select Column1,Column2,Column3
                    From Table_B
                    Where Table_B.Column1=1;';
PREPARE  Statement From @SqlQuery;
EXECUTE Statement;  
DEALLOCATE PREPARE Statement; 
Select Count(*); -- Count of Inserted Rows
End

此查询会将数据从 Table_B 发送到 Table_A。最后我想返回插入行的计数。我该怎么做。我知道当我不使用动态查询时这很容易。它只是将计数分配给变量并将其与选择语法一起使用。但我不知道如何使用动态查询来做到这一点。有人可以建议吗?

标签: mysqldynamic-sql

解决方案


要返回受某个INSERTUPDATE查询影响的行数,请使用ROW_COUNT(). 所以更换

Select Count(*);

SELECT ROW_COUNT();

推荐阅读