我正在尝试根据此触发器更新表:
CREATE TRIGGER alert
AFTER UPDATE ON cars
FOR EACH ROW
EXECUTE PROCEDURE update_cars();
触发器函数:
CREATE FUNCTION update_cars()
RETURNS 'TRIGGER'
AS $BODY$
BEGIN
IF (TG_OP = 'UPDATE') THEN
UPDATE hello_cars SET status = new.status
WHERE OLD.ID = NEW.ID;
END IF;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
触发器运行良好。当更新了
cars
表时,hello_cars
表也会被更新,但是每一行的状态列都会被更新并且包含相同的新状态!它必须根据车辆ID进行更新。我认为我的问题在于条件:
WHERE OLD.ID = NEW.ID;
但我无法确定问题所在。提前感谢您的帮助。