2

tbl_image、tbl_vehicle_image、tbl_vehicle の 3 つのテーブルがあります。

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 に答える