mySQL触发器没有触发

时间:2016-05-20 14:59:41

标签: mysql sql

我有一个包含4列[年,v_num,t_num,百分比]的表,我正在尝试用v_num / t_num * 100填充百分比。数据已在表中,但百分比列为NULL。我创建了一个AFTER INSERT触发器来填充列,但它不起作用。有没有人有任何建议?

TRIGGER

 DELIMITER |

CREATE DEFINER = 'XXX' TRIGGER percentAfterUp
AFTER INSERT
ON `table`
FOR EACH ROW
 BEGIN 

UPDATE `table` SET percentage = v_num/t_num*100;


END|

DELIMITER ;

1 个答案:

答案 0 :(得分:3)

如果要在一行中设置一个值,请使用之前插入触发器,而不是之后插入触发器:

DELIMITER |

CREATE DEFINER = 'XXX' TRIGGER percentAfterUp
BEFORE INSERT ON `table` FOR EACH ROW
BEGIN 
    SET new.percentage = (new.v_num / new.t_num) * 100;
END|

DELIMITER ;

如果您确实想要更新所有行,请不要使用触发器,只需update语句:

UPDATE `table`
    SET percentage = (v_num/t_num)*100;
相关问题