使用mysql动态查询返回已处理行的计数

时间:2019-05-07 06:38:23

标签: mysql dynamic-sql

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

2 个答案:

答案 0 :(得分:1)

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

Select Count(*);

使用

SELECT ROW_COUNT();

答案 1 :(得分:0)

SQL%rowcount可用于获取插入的记录数。可能在下面的链接可能有帮助。

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