Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mariadb 向存储过程传递参数时出现问题_Mariadb - Fatal编程技术网

Mariadb 向存储过程传递参数时出现问题

Mariadb 向存储过程传递参数时出现问题,mariadb,Mariadb,我不知道如何传递自定义表名(例如prepAccTN),以便在执行SP时不出现错误1146 42S02:表“[my schema name].prepAccTN”不存在 试着这么做 CALL Bill_UpdateUnbalancedPrepaidAccounts('correct_table_name', 'boo', 3); CALL Bill_UpdateUnbalancedPrepaidAccounts("correct_table_name", 'boo', 3); CALL Bill_

我不知道如何传递自定义表名(例如prepAccTN),以便在执行SP时不出现错误1146 42S02:表“[my schema name].prepAccTN”不存在

试着这么做

CALL Bill_UpdateUnbalancedPrepaidAccounts('correct_table_name', 'boo', 3);
CALL Bill_UpdateUnbalancedPrepaidAccounts("correct_table_name", 'boo', 3);
CALL Bill_UpdateUnbalancedPrepaidAccounts("my-schema-name.correct_table_name", 'boo', 3);
都失败了

CREATE PROCEDURE Bill_UpdateUnbalancedPrepaidAccounts(prepAccTN VARCHAR(100), wtrTN VARCHAR(100), prepAccId INT)
BEGIN
  UPDATE prepAccTN SET `unbalanced` = (
    SELECT SUM(`chargesecs`) FROM wtrTN WHERE `prepaidaccount` = prepAccId AND `prepaccsettl` = 0
  ) WHERE `id` = prepAccId;
END//
DELIMITER ;

如果确实需要将表名作为参数传递给存储过程,则需要使用。您不能在查询中直接使用该参数。

尝试了准备好的语句,但不幸的是,它们不能在存储过程中使用!因此,我现在不使用SP,而是将所有必要的代码放回触发器中。这不是最好的和首选的方法,但对我和我必须执行的小sql代码来说都没问题