插入后为什么这样做?如何写这样的东西:
CREATE FUNCTION update_auto_dates() RETURNS trigger AS $update_auto_dates$
BEGIN
INSERT INTO dates (dates_user, dates_object, dates_object_id, dates_date) VALUES (NEW.user, NEW.object, NEW.object_id, NEW.date);
END;
$update_auto_dates$ LANGUAGE plpgsql;
CREATE TRIGGER update_auto_dates AFTER INSERT ON log
FOR EACH STATEMENT EXECUTE PROCEDURE update_auto_dates();
答案 0 :(得分:1)
The trigger function is required to return something因为它的定义没有定义它被用作后触发器。这只在触发器定义中已知。
添加RETURN NEW;
语句可能是一个好主意,以防止在将来(意外地)将其用作BEFORE触发器时出现意外情况。您也可以选择RETURN NULL;
,因为AFTER触发器会忽略该结果。