PostgreSQL 9.4 permet de Actualiser des vues matérialisées simultanément , s'ils ont un index unique.
Je cherche une requête SQL qui répertorie toutes les vues matérialisées qui n'ont pas d'index de clé uniques ou primaires.
CONSEIL: Utilisez le drapeau de PSQL pour l'obtenir pour vous montrer comment les requêtes émettent-il de par exemple. son \dm
méta-commande et s'ajuste de là.
Voici une requête rugueuse et non à tout nettoyée, mais cela devrait faire le tour ...
WITH matviews_with_unqiue_keys AS (
SELECT c.oid, c.relname, c2.relname AS idx_name
FROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i
LEFT JOIN pg_catalog.pg_constraint con ON (
conrelid = i.indrelid AND conindid = i.indexrelid AND contype IN ('p','u'))
WHERE
c.relkind = 'm' AND
c.oid = i.indrelid AND i.indexrelid = c2.oid AND indisunique
)
SELECT c.relname
FROM pg_class c
WHERE c.relkind = 'm'
EXCEPT
SELECT mwk.relname
FROM matviews_with_unique_keys as mwk;