我有以下触发器:
CREATE DEFINER = CURRENT_USER
TRIGGER `radia`.`orderstable_AFTER_UPDATE`
UPDATE ON `orderstable`
FOR EACH ROW begin
SET @VATCharged = Amount * (VAT*0.01);
但是,在金额或增值税发生变化后,VATCharged列不会更新。
该表格包含以下内容;订单号(INT),AccNo(VARCHAR),发票号(VARCHAR),描述(VARCHAR),金额(INT),增值税(INT)和VATCharged(INT)。
这个问题的解决方案是什么?
答案 0 :(得分:0)
您需要针对列指定old
或new
以获取更新前的旧值或更新后的新值
set @VATCharged := new.Amount * (new.VAT*0.01);
编辑:
如果您想更新表中的VATCharged
列,那么触发器需要在更新之前进行
delimiter //
create trigger `radia`.`orderstable_AFTER_UPDATE`
before update on `orderstable`
for each row
begin
set new.VATCharged = new.Amount * (new.VAT*0.01);
end ; //
delimiter ;