Мы используем базу данных zendDBi и пытаемся настроить таблицу MySQL из существующей таблицы DB2. Используя метод, найденный здесь: http://wsip-174-79-32-155.ph.ph.cox.net/wiki/index.php/MySql/DB2StorageEngineDocument (в разделе «Существующие таблицы IBM i DB2» в нижней части страница).
Это работает для большинства таблиц, но, в частности, для одной таблицы это не работает.
Я могу создать таблицу MySQL и скопировать файлы FRM, однако, когда я пытаюсь получить доступ к таблице через mysql, я получаю сообщение об ошибке «Получил ошибку 2102 «Файл был изменен и может быть несовместим с определением таблицы MySQL» из IBMDB2I. ”
Я прочитал похожую статью здесь: http://forums.zend.com/viewtopic.php?f=77&t=104778
Однако файл FID не создается. (это сработало для другой таблицы). Вот что я пробовал до сих пор:
- Проверены права доступа к файлу mysql frm
- Проверены разрешения на таблицу DB2.
- Использование команды «сбросить таблицы» в MySQL
- Создание файла FID вручную с правильным идентификационным номером
- Установите IBMDB2I в качестве механизма по умолчанию в my.conf
- Убедитесь, что таблица не содержит зонированных десятичных полей
Мне любопытно, что попробовать дальше.
Ниже приведен оператор создания SQL для исходной таблицы из Навигатора iSeries. как вы можете видеть, есть только 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. так может чего-то не хватает?