sql >> Databáze >  >> RDS >> PostgreSQL

Jak obnovit všechny materializované pohledy v Postgresql 9.3 najednou?

Vypadá to, že aktuální verze PostgreSQL (9.3.1) takovou funkcionalitu nemá, musel jsem místo toho napsat svou vlastní funkci:

CREATE OR REPLACE FUNCTION RefreshAllMaterializedViews(schema_arg TEXT DEFAULT 'public')
RETURNS INT AS $$
DECLARE
    r RECORD;
BEGIN
    RAISE NOTICE 'Refreshing materialized view in schema %', schema_arg;
    FOR r IN SELECT matviewname FROM pg_matviews WHERE schemaname = schema_arg 
    LOOP
        RAISE NOTICE 'Refreshing %.%', schema_arg, r.matviewname;
        EXECUTE 'REFRESH MATERIALIZED VIEW ' || schema_arg || '.' || r.matviewname; 
    END LOOP;

    RETURN 1;
END 
$$ LANGUAGE plpgsql;

(na githubu:https://github.com/sorokine/RefreshAllMaterializedViews )



  1. Nápověda MySQL:Jak najít všechny objednávky od zákazníka do ceny <=20 a status='nezaplaceno'

  2. Pokud se pole překrývají, sbalte více řádků polí

  3. Problém s ukládáním německých slov do MySql DB....?

  4. Postup s parametrem IN