IBM® Migration Toolkit 增加了一些帮助把数据从 MySQL 迁移到 DB2® 或 Informix® Dynamic Server 的新功能。在本文中,学习如何使用这个工具集帮助迁移 DDL 和 DML 语句,了解如何映射数据类型。
在 2007 年初,IBM Migration Toolkit 2.0.2.0(MTK)实现了对从 MySQL 4.x 和 5.x 迁移到 DB2 和 Informix Dynamic Server(IDS)目标的有限支持。后续的 MTK 版本改进了最初的支持。改进的支持包括迁移某些 DDL 和 DML 语句。
MTK 支持对以下 MySQL SQL 语句的完全转换:
- CREATE TABLE 语句
- CREATE INDEX 语句
MTK 还在很大程度上支持以下 MySQL SQL 语句:
- INSERT 语句
- ALTER TABLE 语句
- DROP TABLE 语句
- SELECT 语句
- DELETE 语句
- UPDATE 语句
在下面几节中,首先讨论在从 MySQL 迁移到 DB2 时如何利用 MTK 支持,然后讨论从 MySQL 迁移到 IDS 的情况。
从 MySQL 到 DB2 的迁移支持只适用于 DB2 Database for Linux®, UNIX® and Windows® Version 8.2 或更高版本,以及 DB2 Database for iSeries® V5R3 或 V5R4。本文主要关注针对 DB2 Database for Linux, UNIX and Windows 的 MTK 支持。
CREATE TABLE 语句支持包括对 MySQL InnoDB 引擎支持的所有语法进行转换。这包括数据类型映射、数据提取和在 DB2 中部署数据。MTK 还支持 MyISAM 引擎,这种引擎的语法是相似的。但是,不支持应用于 fhs MyISAM 引擎的空间类型。
表 1 解释了 MySQL 数据类型如何映射到 DB2 数据类型。还指出了特定数据类型的可选映射(用户可以用这种映射覆盖 MTK 选择的默认映射)。
表 1. 数据类型映射
| MySQL 数据类型 | DB2 数据类型 |
|---|---|
| TINYINT | SMALLINT |
| SMALLINT | SMALLINT |
| MEDIUMINT | INTEGER |
| INT | INTEGER |
| INTEGER | INTEGER |
| BIGINT | BIGINT |
| REAL | DOUBLE |
| DOUBLE | DOUBLE |
| FLOAT | DOUBLE |
| DECIMAL(p,s) 其中: s > 0 && p >= s s > 0 && p < s s < 0 | DECIMAL(min(p,31), min(s,31)) DECIMAL(min(p,31), min(s,31)) DECIMAL(min(p,31),0) |
| NUMERIC(p,s) 其中: s > 0 && p >= s s > 0 && p < s s < 0 | DECIMAL(min(p,31), min(s,31)) DECIMAL(min(p,31), min(s,31)) DECIMAL(min(p,31),0) |
| TINYINT UNSIGNED | SMALLINT |
| SMALLINT UNSIGNED | INTEGER 可选: SMALLINT |
| MEDIUMINT UNSIGNED | INTEGER |
| INT UNSIGNED | BIGINT 可选: INTEGER |
| BIGINT UNSIGNED | DECIMAL(20,0) 可选: BIGINT |
| REAL UNSIGNED | DOUBLE 可选: DOUBLE |
| DOUBLE UNSIGNED | DECIMAL(p,s) |
| FLOAT UNSIGNED | DOUBLE |
| DECIMAL UNSIGNED | DECIMAL(p,s) |
| NUMERIC UNSIGNED | DECIMAL(p,s) |
| DATE | DATE |
| TIME | TIME |
| TIMESTAMP | TIMESTAMP |
| DATETIME | TIMESTAMP 可选: TIME |
| YEAR | CHAR(4) |
| CHAR(l) | CHAR(l) 可选: VARCHAR |
| VARCHAR(l) | VARCHAR(l) 可选: CLOB |
| TINYBLOB | BLOB(255) |
| BLOB | BLOB(65535) |
| MEDIUMBLOB | BLOB(16777215) |
| LONGBLOB | BLOB(2000000000) |
| TINYTEXT | CLOB(255) |
| TEXT | CLOB(65535) |
| MEDIUMTEXT | CLOB(16777215) |
| LONGTEXT | CLOB(2000000000) |
清单 1a 和清单 1b 说明 MySQL 数据类型和 create table 语句如何转换为 DB2 语法:
本文转自IBM Developerworks中国
IBM Migration Toolkit提供从MySQL 4.x和5.x到DB2及Informix Dynamic Server的数据迁移支持,包括CREATE TABLE, CREATE INDEX, INSERT, ALTER TABLE, DROP TABLE, SELECT, DELETE和UPDATE等语句的转换。文章详细介绍了迁移过程,特别是CREATE TABLE语句的InnoDB和MyISAM引擎数据类型映射到DB2的过程。"
88756787,7842460,Kinect深度图像坐标到世界坐标的转换,"['Kinect', 'OpenNI', '3D坐标转换', '深度感知', '计算机视觉']
570

被折叠的 条评论
为什么被折叠?



