Возвращает количество обработанных строк с помощью динамического запроса mysql - PullRequest
0 голосов
/ 07 мая 2019

Я написал динамический запрос 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

Этот запрос отправит данные из Таблицы_В в Таблицу_А. в конце я хочу вернуть количество вставленных строк. Как мне это сделать. Я знаю, что это легко, когда я не использую динамический запрос. это просто присвоить счет переменной и использовать его с синтаксисом выбора. но я понятия не имею, как это сделать с динамическим запросом. кто-то может подсказать?

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Чтобы вернуть количество строк, затронутых запросом INSERT или UPDATE, используйте ROW_COUNT(). Так что замени

Select Count(*);

с

SELECT ROW_COUNT();
0 голосов
/ 07 мая 2019

SQL% rowcount может использоваться для получения количества вставленных записей. Может быть ниже ссылка может быть полезна.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...