在这个例子中:
select case when someFunction() is null or someFunction() = 0 then 999 else someFunction() end
someFunction() 运行 3 次还是只运行 1 次?
在这个例子中:
select case when someFunction() is null or someFunction() = 0 then 999 else someFunction() end
someFunction() 运行 3 次还是只运行 1 次?
假设我有一个每天创建的表:
20181227
20181226
20181225
...
有这样的观点:
CREATE OR REPLACE VIEW someview
AS
SELECT * FROM 20181227
UNION
SELECT * FROM 20181226
UNION
SELECT * FROM 20181225
...
有没有一种方法可以用另一个代码替换它,该代码可以自动从所有这些表中获取数据而不必为每个表创建一个联合?现在有一个每天运行的 bash 脚本,每天用一个新的联合重新生成视图,但这并不优雅。
我正在查看 PostgreSQL 文档,其中:
REFRESH MATERIALIZED VIEW 完全替换了物化视图的内容。旧内容被丢弃。
但是,我相信从 9.5 开始,有一种方法可以更新 MV,而无需重新生成所有数据。