【发布时间】:2020-01-09 17:42:52
【问题描述】:
我创建了一个存储过程来返回作为“IN”参数传入的任何表的行计数值,并将该行计数输出到 OUT 参数
PROCEDURE `GetCount`(in tblname varchar(255), out rowcount int)
BEGIN
SET @sql_text1 = concat('SELECT COUNT(*) FROM ',tblname);
SET @sql_text2 = concat(@sql_text1,' INTO ');
SET @sql_final = concat(@sql_text2, rowcount);
PREPARE stmt1 FROM @sql_text1;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
END
当我在 MySQL 工作台中打开查询窗口并执行以下操作时:
set @tablename = 'my_table_name;
set @cnt = -9998;
call GetCount(@tablename,@cnt);
SELECT @cnt;
@cnt 的值为 NULL。
是我测试存储过程的方法不正确,还是应该归咎于存储过程?
【问题讨论】:
-
你正在从 sql_text1 做准备...那么 sql_text2 和 sql_final 什么时候执行?
标签: mysql stored-procedures mysql-workbench