【发布时间】:2019-02-08 14:45:15
【问题描述】:
我已经创建了如下的物化查询表:
CREATE TABLE SCHEMA.TABLE AS
(SELECT * FROM SCHEMA.TABLEEXAMPLE)
DATA INITIALLY DEFERRED
REFRESH DEFERRED
MAINTAINED BY USER
DISABLE QUERY OPTIMIZATION;
当我执行REFRESH TABLE SCHEMA.TABLE 时,它会被锁定以供其他用户读取。
我试图执行这个语句:
REFRESH TABLE SCHEMA.TABLE ALLOW READ ACCESS
但我收到以下错误:SQL State: 42601 Unexpected keyword ALLOW
我在声明中遗漏了什么?是否有其他方法允许在更新具体化查询表时对其进行读取访问?
【问题讨论】:
-
如果 Db2-server 在 i 系列上运行,请不要引用 Db2-server 的 Linux/Unix/Windows 页面。不同的操作系统,不同的 Db2 风格。 i-series Refresh Table 的正确页面是ibm.com/support/knowledgecenter/en/ssw_ibm_i_71/db2/…,正如您所见,它不支持该子句。可以在 mqt 的 SELECT 上指定一个较小的隔离子句。
-
谢谢毛。你知道如何指定隔离级别吗?我尝试在 select 语句末尾使用 WITH UR 选项:SELECT * FROM SCHEMA.TABLE WITH UR 但我收到错误 SQL State: 57033, file is in use
-
考虑在 Db2 for i 知识中心搜索
isolation level