我有一个包含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 ;
答案 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;