我从phpmyadmin制作了这个程序,但是它不起作用,我将 record_id 中的最后一个单词替换为指定的字符串id并且工作正常,但是当我使用该参数不起作用时。
DROP PROCEDURE `prcd_update_record`;
CREATE DEFINER=`root`@`localhost`
PROCEDURE `prcd_update_record`(
IN `talep_id` VARCHAR(24),
IN `vall` INT(10)
)
NOT DETERMINISTIC
MODIFIES SQL DATA SQL
SECURITY INVOKER
UPDATE `talep_malzeme`
SET `kalan_miktar` = vall
WHERE `talep_malzeme`.`id` = talep_id;
我执行它是这样的:
SET @p0='33'; SET @p1='57fb7911ea91e9efa'; CALL `prcd_update_record`(@p0, @p1);
答案 0 :(得分:1)
DROP PROCEDURE IF EXISTS `prcd_sevk_toplam`;
create procedure prcd_sevk_toplam(talep_id int, vall VARCHAR(255))
BEGIN
UPDATE `talep_malzeme` SET `kalan_miktar` = vall WHERE `talep_malzeme`.`id` = talep_id;
END;
希望这会对你有所帮助。
答案 1 :(得分:1)
看起来您的参数顺序错误,请尝试
CALL `prcd_sevk_toplam`(@p1, @p0);
答案 2 :(得分:1)
您应根据参数定义为参数提供适当的值。您的程序接受以下参数
PROCEDURE `prcd_sevk_toplam`(
IN `talep_id` VARCHAR(24),
IN `vall` INT(10)
您正在将它们设置为varchar
。这可能是这里的问题。你应该将它们设置为
SET @p0=33;
SET @p1='57fb7911ea91e9efa';
CALL `prcd_sevk_toplam`(@p1, @p0);