如何在mysql中创建物化视图?
我无法像在ms sql server中那样创建物化视图。
有谁能告诉我在mysql中创建它的方法吗?

最佳答案

您可以创建一个不可更新的动态视图—如果在基础表中有(索引的)时间戳,则可以添加快照,如下所示:

CREATE VIEW almost_materialzd
AS
SELECT snp.*
FROM snapshot snp
WHERE s.id NOT IN (SELECT id
  FROM source_data sd
  INNER JOIN ref_data rd
  ON rd.value='snapshot of source_data'
  AND sd.update_timestamp>rd.timetamp)
UNION
SELECT *
FROM source_data sd2
INNER JOIN ref_data rd2
ON rd2.value='snapshot of source_data'
AND sd2.update_timestamp>rd2.timetamp);

但更好的解决方案是向基础表添加一个(或多个)触发器,以便在基础表更改时重新填充表示物化视图的表中的相关行。

09-18 01:57