我在更新同一个表的另一列后尝试更新表的字段时遇到了一些问题。 我知道我不能在同一个表上执行触发器我正在更新,但我需要找到一个技巧来做到这一点。
例如,我的表是:
ParentName | Age | Update_date
John 12 2014-12-01
Eric 23 2014-4-01
Jack 32 2014-5-01
Jill 33 2014-2-01
更新age
后,我需要更新update_date
,我的实际情况我无法直接从更新查询中执行此操作,因为我希望此规则不依赖于我如何更新桌子。
我正在尝试使用存储过程执行此操作,但我不太了解它们。
有人有任何想法或者可以解释如何使用tored程序来做这件事吗?
答案 0 :(得分:0)
您的触发器可能是这样的:
DELIMITER //
CREATE TRIGGER persons_updt BEFORE UPDATE ON persons
FOR EACH ROW
IF (NEW.age <=> OLD.age) THEN SET NEW.Update_date=current_date();
END IF//
DELIMITER ;
我在这里使用null-safe operator <=>。请查看小提琴here。