触发器代码如下:
create trigger trg_user_update
after update
on user for each row
begin
if new.num<0 then
set new.overdraft=new.overdraft-new.num;
set new.num=0;
end if;
end
如果num小于0,将其设置为0,并将overdraft的值进行处理现在的情况时:
1、如果更新之前num的值大于0,这个触发器的结果是正确的
2、如果更新前num值为0,触发器执行结果不正确 overdraft的值没有变化大家帮看看什么原因 分析下 谢谢
create trigger trg_user_update
after update
on user for each row
begin
if new.num<0 then
set new.overdraft=new.overdraft-new.num;
set new.num=0;
end if;
end
如果num小于0,将其设置为0,并将overdraft的值进行处理现在的情况时:
1、如果更新之前num的值大于0,这个触发器的结果是正确的
2、如果更新前num值为0,触发器执行结果不正确 overdraft的值没有变化大家帮看看什么原因 分析下 谢谢
粘贴的时候 贴错了代码应该是before update
after update改成BEFORE UPDATE
去掉就没问题了奇怪
if new.num<0 then
set new.overdraft=new.overdraft-new.num;如果new.num=0,new.overdraft这个值不是会变化的。另外new.num<0看出,只对小于进行了处理,等于和大于的情况下,都不会进行处理。