mydatabase
スキーマの非常に残念な名前です 。
トリガー関数は次のようになります。
CREATE OR REPLACE FUNCTION trg_upaft_upd_trip()
RETURNS TRIGGER AS
$func$
BEGIN
UPDATE mydatabase.trip t -- "mydatabase" = schema name (?!)
SET last_updated = now()
WHERE t.id = NEW.trip_id -- guessing column names
RETURN NULL; -- calling this AFTER UPDATE
END
$func$ LANGUAGE plpgsql;
また、関連するすべてのテーブルのトリガーで使用する必要があります(trip
ではありません)。 それ自体):
CREATE TRIGGER upaft_upd_trip
AFTER UPDATE ON mydatabase.trip_detail
FOR EACH ROW EXECUTE PROCEDURE trg_upaft_upd_trip();
INSERT
もカバーする必要があります およびDELETE
(そしておそらくCOPY
)すべてのサブテーブルで...
このアプローチには、多くの潜在的な障害点があります。別の方法として、最新のlast_updated
を計算するクエリまたはビューを検討してください。 サブテーブルから動的に。頻繁に更新する場合は、これが優れたアプローチになる可能性があります。
めったにUPDATE
しない場合 およびSELECT
多くの場合、最初のアプローチで十分です。