我正在使用从tableA的触发器调用的过程(例如)。在该过程中,我正在更新另一个表,即tableB。但这不起作用,我没有收到任何错误,但tableB没有更新。请帮助我解决此问题。
触发器:用于表A插入前
BEGIN
CALL his_arrear(new.Reg_No,new.Sub_Code);
END
程序:
BEGIN
DECLARE toup integer;
select count(*) into toup from tableA where Reg_No=reg and Sub_Code=scode;
update tableB set his_arrear=toup where regno=reg;
END
实际上,此过程正在执行,但未更新tableB。
最佳答案
既然您标记了SQL,以下是我在SQL中的操作方法:
ALTER PROCEDURE his_arrear
@reg VARCHAR(10),
@scode VARCHAR(10)
AS
BEGIN
DECLARE @toup INTEGER;
SELECT COUNT(*) AS @toup
FROM tableA
WHERE Reg_No=@reg AND Sub_Code=@scode;
UPDATE tableB
SET his_arrear=ISNULL(@toup,0)
WHERE regno=@reg;
END
笔记:
-我使用
VARCHAR(10)
,因为您没有说明数据类型。根据需要进行更改。-您在命令中使用了
Reg_no
和regno
。这些列名正确吗?关于mysql - 无法使用Mysql -phpMyAdmin中的存储过程更新表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26561706/