【发布时间】:2015-01-23 08:34:26
【问题描述】:
我的数据库是 PostgreSQL (9.3.5)。
我们有 500 多个具体化视图,希望删除其中的一些。
为此,我们从pg_class 的物化视图中获取:
FOR MVNAME IN (SELECT relname
FROM pg_class
WHERE relkind='m')
LOOP
EXECUTE 'DROP MATERIALIZED VIEW '||MVNAME||'';
END LOOP;
在执行时它给了我们一个错误:
ERROR: "dimension" is not a materialized view SQL state: 42809 Hint: Use DROP FOREIGN TABLE to remove a foreign table. Context: SQL statement "DROP MATERIALIZED VIEW dimension" PL/pgSQL function test_drop_dims() line 14 at EXECUTE statement
我们可以使用以下方法删除一个物化视图:
DROP MATERIALIZED VIEW MVNAME;
但我们不能使用EXECUTE 语句删除多个物化视图。
【问题讨论】:
标签: sql postgresql dynamic-sql postgresql-9.3 materialized-views