Recent Entries
Archives
Search


Links
Powered by
Movable Type 2.64

2005年05月05日

マテリアライズドビュー

http://jonathangardner.net/PostgreSQL/materialized_views/matviews.htmlの reflesh_matview_functionは
CREATE OR REPLACE FUNCTION refresh_matview(name) RETURNS VOID
SECURITY DEFINER
LANGUAGE plpgsql AS '
DECLARE 
    matview ALIAS FOR $1;
    entry matviews%ROWTYPE;
BEGIN

    SELECT * INTO entry FROM matviews WHERE mv_name = matview;

    IF NOT FOUND THEN
        RAISE EXCEPTION ''Materialized view % does not exist.'', matview;
    END IF;

    EXECUTE ''DELETE FROM '' || matview;
    EXECUTE ''INSERT INTO '' || matview
        || '' SELECT * FROM '' || entry.v_name;

    UPDATE matviews
        SET last_refresh=CURRENT_TIMESTAMP
        WHERE mv_name=matview;

    RETURN;
END
';
だと思う。 Posted by minemaz at 2005年05月05日 14:31
トラックバック
Comments
Post a comment









Remember personal info?