根据另一列的计算创建 MYSQL 触发器以更新列

Create MYSQL Trigger To Update Column based on calculation of another column

我有这个table

id     price     qty     points

如何创建一个触发器,以便每当我更新列价格时,列点将根据价格的计算更新 DIV 10 DIV 数量?

我已经试过了,但它不起作用,而且它不更新列点。

delimiter $$
drop trigger if exists cart_update_rewards$$
create trigger cart_update_rewards
after update on cart
for each row 
begin
SELECT `price` DIV 10 DIV `quantity` as points FROM `cart`;
end$$ 

如果要将值分配给 cart 中的列,请使用 "before update" 触发器并在 new 中分配值:

delimiter $$
drop trigger if exists cart_update_rewards$$
create trigger cart_update_rewards
before update on cart
for each row 
begin
    set new.points = new.price DIV 10 DIV new.quantity ;
end$$ 

我在@GordonLinoff 的帮助下解决了这个问题。

DELIMITER //
CREATE TRIGGER trigger_name
BEFORE UPDATE
ON cart FOR EACH ROW
BEGIN
-- trigger code
set new.`reward_points` = new.cart_price DIV 1;
END; // 
DELIMITER ;