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 受INSERT
或UPDATE
查询影响的行数,请使用ROW_COUNT()
。所以替换
Select Count(*);
和
SELECT ROW_COUNT();
SQL%rowcount 可用于获取插入的记录数。可能低于 link 可能会有帮助。
https://community.oracle.com/thread/2370954?start=0&tstart=0
我编写了一个 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 受INSERT
或UPDATE
查询影响的行数,请使用ROW_COUNT()
。所以替换
Select Count(*);
和
SELECT ROW_COUNT();
SQL%rowcount 可用于获取插入的记录数。可能低于 link 可能会有帮助。
https://community.oracle.com/thread/2370954?start=0&tstart=0