MySQL在同一个表上更新TRIGGER

时间:2015-12-30 09:23:32

标签: mysql stored-procedures triggers sql-update

我在更新同一个表的另一列后尝试更新表的字段时遇到了一些问题。 我知道我不能在同一个表上执行触发器我正在更新,但我需要找到一个技巧来做到这一点。

例如,我的表是:

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程序来做这件事吗?

1 个答案:

答案 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