Return 使用 mysql 动态查询处理的行数

Return count of processed rows with mysql dynmic query

我编写了一个 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。最后我想 return 插入行的计数。 我该怎么做。 我知道当我不使用动态查询时这很容易。 它只是将计数分配给一个变量并使用 select 语法。 但我不知道如何使用动态查询来做到这一点。 有人可以建议吗?

要return 受INSERTUPDATE 查询影响的行数,请使用ROW_COUNT()。所以替换

Select Count(*);

SELECT ROW_COUNT();

SQL%rowcount 可用于获取插入的记录数。可能低于 link 可能会有帮助。

https://community.oracle.com/thread/2370954?start=0&tstart=0