2

我有 3 个表,tbl_image、tbl_vehicle_image 和 tbl_vehicle

tbl_vehicle_image 解决了 tbl_image 和 tbl_vehicle 之间的多对多关系

tbl_vehicle 有一个 last_modified_date

如何创建一个触发器,当我更改例如 tbl_image.img_lnk 时,使用 tbl_vehicle_image 查找 tbl_vehicle 中使用该图像的所有记录,并将它们的 last_modified_date 设置为 NOW()?

4

2 回答 2

2
CREATE TRIGGER `trig_after_image_update` AFTER UPDATE ON `tbl_image`
 FOR EACH ROW 
    if old.img_lnk<>NEW.img_lnk
    then
        update tbl_vehicle  set last_modified_date=NOW() where id in (select vehicle_id from tbl_vehicle_image where image_id=OLD.id);
    end if;

我没有您表的所有字段名称,因此请更改它们。我已使用 id 作为相应表的主键。

于 2012-11-18T08:47:53.960 回答
1

你可以这样做:

DELIMITER $$;

create TRIGGER UpdateLastmodifiedDate AFTER UPDATE ON tbl_image
FOR EACH ROW 
BEGIN
   UPDATE tbl_vehicle v
   INNER JOIN tbl_vehicle_image vi ON v.vehicleId = vi.vehicleID
   INNER JOIN tbl_image i ON vi.imageid = i.id
   SET v.lastmodified_date = NOW()
   WHERE i.img_lnk = NEW.img_lnk;
END$$
于 2012-11-18T08:40:35.267 回答