В любом случае, можно: CREATE MATERIALIZED VIEW ... WITH NO DATA; REFRESH MATERIALIZED VIEW CONCURRENTLY;
Паша, так, конечно, не заработает. Кое-чего не хватает ;)
Был неправ, вспылил)) Действительно не сработает: postgres=# create materialized view m as select * from t with no data; SELECT 0 postgres=# refresh materialized view CONCURRENTLY m; ERROR: CONCURRENTLY cannot be used when the materialized view is not populated