我正在使用一些SQL触发器来在修改或创建表行时启动操作。这就像魅力一样,在我的示例中将列gen_date
设置为当前日期/时间:
CREATE TRIGGER insert_template BEFORE INSERT ON template
FOR EACH ROW BEGIN
SET new.gen_date := now();
END;
我有另一列image
,我想添加一列image_date
,该列应该具有该字段更新时的当前时间/日期的值。
问题:是否可以设置跟踪列式修改的触发器?
答案 0 :(得分:1)
NEW.
可以访问新值,OLD.
可以访问旧值。您可以比较它们以定义值是否已更改。
CREATE TRIGGER insert_template BEFORE INSERT ON template
FOR EACH ROW BEGIN
SET NEW.gen_date := now();
IF NEW.image <> '' THEN
SET NEW.image_date := now();
END IF;
END;
CREATE TRIGGER update_template BEFORE UPDATE ON template
FOR EACH ROW BEGIN
IF NEW.image <> OLD.image THEN
SET NEW.image_date := now();
END IF;
END;