PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да опресня всички материализирани изгледи в Postgresql 9.3 наведнъж?

Изглежда, че текущата версия на PostgreSQL (9.3.1) няма такава функционалност, вместо това трябваше да напиша моя собствена функция:

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;

(в github:https://github.com/sorokine/RefreshAllMaterializedViews )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Колко ефективно е да се подрежда по разстояние (цялата таблица) в geodjango

  2. Docker-compose променливи на средата

  3. Инсталирайте Postgres.app на Mac

  4. Как да изтрия таблица * или * изглед от базата данни на PostgreSQL?

  5. PostgreSQL вътрешности:Какво е „resjunk“?