iSeries / IBMDB2I上的MySQL表

时间:2014-02-14 17:19:39

标签: mysql db2 zend-db ibm-midrange iseries-navigator

我们正在使用zendDBi数据库,并且正在尝试从现有DB2表中设置MySQL表。使用此处找到的方法: http://wsip-174-79-32-155.ph.ph.cox.net/wiki/index.php/MySql/DB2StorageEngineDocument (在页面底部附近标题为“Existing IBM i DB2 Tables”的部分)。

这适用于大多数表,但对于一个表,特别是它似乎不起作用。

我能够创建MySQL表并复制FRM文件,但是当我尝试通过mysql访问表时,我收到错误 “得到错误2102'文件已更改,可能与IBMDB2I中的MySQL表定义不兼容”

我在这里读了一篇类似的文章: http://forums.zend.com/viewtopic.php?f=77&t=104778

但是没有创建FID文件。 (这确实适用于另一张桌子)。这是我到目前为止所尝试的:

  • 检查mysql frm文件的文件权限
  • 检查了DB2表的权限
  • 在MySQL中使用“flush tables”命令
  • 手动创建具有正确标识号的FID文件
  • 将IBMDB2I设置为my.conf
  • 中的默认引擎
  • 确保表格不包含分区十进制字段

我很好奇下一步该尝试什么。

以下是iSeries Navigator中原始表的SQL create语句。如您所见,只有2种数据类型。

    CREATE TABLE GB1555AFGD.Z1OCTLSP ( 
    ZZSALE CHAR(10) NOT NULL DEFAULT '' , 
    ZZAGRP CHAR(4) NOT NULL DEFAULT '' , 
    ZZPCOD CHAR(1) NOT NULL DEFAULT '' , 
    ZZDAMT DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZPPCT DECIMAL(5, 2) NOT NULL DEFAULT 0 , 
    ZZBCHK DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZOLMT DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZOBJT DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZTCHK DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZMGID CHAR(10) NOT NULL DEFAULT '' , 
    ZZMPCT DECIMAL(5, 2) NOT NULL DEFAULT 0 , 
    ZZLSAL DECIMAL(17, 4) NOT NULL DEFAULT 0 , 
    ZZBRNO CHAR(35) NOT NULL DEFAULT '' , 
    ZZBNKA CHAR(17) NOT NULL DEFAULT '' , 
    ZZDDTP CHAR(1) NOT NULL DEFAULT '' , 
    ZZTXNO CHAR(3) NOT NULL DEFAULT '' , 
    ZZSPM1 CHAR(60) NOT NULL DEFAULT '' , 
    ZZSPM2 CHAR(60) NOT NULL DEFAULT '' , 
    ZZSPM3 CHAR(60) NOT NULL DEFAULT '' , 
    ZZSPM4 CHAR(60) NOT NULL DEFAULT '' , 
    ZZROM CHAR(6) NOT NULL DEFAULT '' , 
    ZZCKCD CHAR(1) NOT NULL DEFAULT '' , 
    ZZFAXYN CHAR(1) NOT NULL DEFAULT '' , 
    ZZPRNYN CHAR(1) NOT NULL DEFAULT '' , 
    ZZFAX CHAR(35) NOT NULL DEFAULT '' , 
    ZZTIME CHAR(8) NOT NULL DEFAULT '' , 
    ZZTIMEC CHAR(1) NOT NULL DEFAULT '' , 
    ZZEMLYN CHAR(1) NOT NULL DEFAULT '' , 
    ZZEMAIL CHAR(60) NOT NULL DEFAULT '' , 
    ZZRCAP CHAR(1) NOT NULL DEFAULT '' ) ;

我不确定它是否重要,但是我遇到困难的表是在较旧的操作系统中创建的。目前我们在7.1上,但这些表可能是在v3r2或v5r4中创建的。也许有些东西丢失了?

1 个答案:

答案 0 :(得分:2)

我知道我迟到了一年,但对于在这里搜索的其他人来说......这可能是IBM i 7.1中使用PTF修复的问题。确保您已应用PTF SI50864(如果可能,还应用http://www-01.ibm.com/support/docview.wss?uid=nas267d12878076e4827862574e2003c6d4a中列出的所有最新PTF)