zendDBi データベースを使用しており、既存の DB2 テーブルから MySQL テーブルをセットアップしようとしています。ここにある方法を使用: http://wsip-174-79-32-155.ph.ph.cox.net/wiki/index.php/MySql/DB2StorageEngineDocument (近くの「既存の IBM i DB2 テーブル」というタイトルのセクションにあります)ページの一番下)。
これはほとんどのテーブルで機能しますが、特に 1 つのテーブルでは機能していないようです。
MySQL テーブルを作成して FRM ファイルをコピーすることはできますが、mysql 経由でテーブルにアクセスしようとすると、IBMDB2I から「エラー 2102 'ファイルが変更されたため、MySQL テーブル定義と互換性がない可能性があります」というエラーが表示されます。 」</p>
ここで同様の記事を読みました: http://forums.zend.com/viewtopic.php?f=77&t=104778
ただし、FID ファイルは作成されません。(これは別のテーブルで機能しました)。これが私がこれまでに試したことです:
- mysql frm ファイルのファイル権限を確認しました
- DB2 テーブルの権限を確認しました
- MySQL で「テーブルをフラッシュ」コマンドを使用する
- 正しい識別番号で FID ファイルを手動で作成する
- my.conf で IBMDB2I をデフォルトのエンジンとして設定する
- テーブルにゾーン 10 進数フィールドが含まれていないことを確認する
次は何に挑戦しようか、興味津々です。
以下は、iSeries ナビゲーターからの元のテーブルの SQL 作成ステートメントです。ご覧のとおり、データ型は 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 '' ) ;
問題があるかどうかはわかりませんが、問題を抱えているテーブルは古い OS で作成されたものです。現在、7.1 を使用していますが、これらのテーブルは v3r2 または v5r4 で作成された可能性があります。多分何かが欠けているのでしょうか?