【问题标题】:DB2 cannot create MQT tableDB2 无法创建 MQT 表
【发布时间】:2015-01-06 21:01:40
【问题描述】:

我正在尝试在我的 DB2 v10.5 中创建 DB2 MQT 表,但收到以下错误消息:

意外的令牌“CREATE TABLE T_MQT AS ( 在“BEGIN-OF-STATEMENT”之后发现了 SELECT ID、COL1、C”。预期的标记可能包括:“”.. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.16.53 SQL 代码:-104,SQL 状态: 42601

这是我的创建表语句:

创建表 T ( ID VARCHAR(128) 非空, COL1 VARCHAR(128), COL2 VARCHAR(128), COL3 VARCHAR(128), COL4 VARCHAR(128), COL5 VARCHAR(128), 主键 (ID) ); 创建表 T_MQT AS ( 从 T 中选择 ID、COL1、COL2、COL3 ) 最初延迟的数据 立即刷新 SET INTEGRITY FOR T_MQT IMMEDIATE CHECKED NOT INCREMENTAL;

【问题讨论】:

  • 您使用的是哪个版本的 DB2? (Express-C,工作组服务器版,...)。请注意,某些版本不支持 MQT。

标签: db2


【解决方案1】:

CREATE TABLE T_MQT ... 语句和 SET INTEGRITY 语句之间缺少分号。

【讨论】:

    【解决方案2】:

    我发现原因是基表是“ORGANIZE BY COLUMN”。所以我把sql改成

    创建表 T ( ID 整数非空, COL1 VARCHAR(128), COL2 VARCHAR(128), COL3 VARCHAR(128), COL4 VARCHAR(128), COL5 VARCHAR(128), 主键 (ID) ) 按行组织; 创建表 T_MQT(ID、COL1、COL2、COL3) AS(从 T 中选择 ID、COL1、COL2、COL3) 系统维护的数据最初延迟刷新; SET INTEGRITY FOR T_MQT IMMEDIATE CHECKED FULL ACCESS;

    【讨论】:

      猜你喜欢
      • 2011-09-16
      • 1970-01-01
      • 2016-09-24
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 2022-10-12
      • 2016-03-28
      • 2014-02-15
      相关资源
      最近更新 更多