我有一个 MySQL 触发器,它使用 BEFORE INSERT ON table
计算值并在用户在特定列中插入值后更新同一个表。这按预期工作。但是用户在输入时出错并修复了错误,我想编写一个触发器,在修复错误后更新计算值。有没有办法做到这一点?
问问题
7010 次
1 回答
7
触发器可以访问行中的BEFORE UPDATE ON table
现有值以及新提供的值,并且可以根据我们想要的任何条件和表达式设置表中任何列的值。
例如,可以测试一个或多个关注列的值是否已被修改,然后将其他列设置为某个表达式。
DELIMITER $$
CREATE TRIGGER my_before_update_trigger
BEFORE UPDATE ON my_table
FOR EACH ROW
BEGIN
IF NOT ((NEW.col1 <=> OLD.col1) AND (NEW.col2 <=> OLD.col2)) THEN
SET NEW.col3 = NEW.col1 * NEW.col2 ;
END IF;
END$$
DELIMITER ;
于 2013-03-14T16:15:57.227 回答