我的桌子有这样的结构:

products:
mrp | discount | price


我想创建一个触发器,以便如果我更改折扣的值,它将相应地设置价格。

create trigger updateprice on products
after update
as if(update(discount))
update products set price=((100-discount)/100)*mrp;


但是,这给了我语法错误,并且我无法找到确切的代码。有人可以帮忙吗?

最佳答案

您需要一个BEFORE触发器,但不需要AFTER

delimiter //

create trigger updateprice  before update on products
  for each row begin
    if new.discount <> old.discount then
       set new.price = ( ( 100 - new.discount ) / 100 ) * new.mrp;
    end if;
  end;
//

delimiter ;

关于mysql - 创建触发器以在第一列更新时更新第二列的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21612322/

10-14 13:39