mariadb 在My sql存储过程中作为参数的表变量

jdgnovmf  于 2022-11-08  发布在  其他
关注(0)|答案(3)|浏览(161)

是否可以将表变量作为参数传递给MySql中的存储过程

ej83mcc0

ej83mcc01#

如果要将表作为参数传递到存储过程中,答案是否定的。只能传递标量值。
可以通过表名直接访问该表;如果您想使用表名在过程中构造和运行新查询,那么请看一下prepared statements

u5rb5r59

u5rb5r592#

通过查看预准备语句,我最终创建了以下存储过程:

DELIMITER $$
CREATE PROCEDURE `SELECT_FROM`(IN `TBName` VARCHAR(64))
BEGIN

  SET @SQLString = CONCAT("SELECT * FROM `", TBName, "` ;");

  PREPARE qry FROM @SQLString;
  EXECUTE qry;

END$$
DELIMITER ;
h22fl7wq

h22fl7wq3#

是的

TableA:
    MyId       MyNumber
    1          5
    2          6
    3          9

Select myNumber, MyStoredProcedure(MyNumber) from TableA where MyNumber > 5

相关问题