2010-09-22 68 views
0

我使用MySQL Migration Toolkit将SQL Server 2008数据库迁移到MySQL。但是,它将我所有的bit类型转换为tinyint。我的数据模型不喜欢这个,因为我有一堆表达式测试true/false,而不是0-255。将MySQL tinyint类型转换为位

有没有办法告诉工具包转换这些不同的,或者一些SQL我可以在新的数据库上运行转换?

回答

1

在MySQL之前5.0.5位并没有真正存在,因此迁移工具包可能还没有更新,不过也可以使用TINYINT(1),而不是按从MySQL网站这句话:

“从MySQL 5.0.3开始,BIT数据类型可用于存储位字段值(在5.0.3之前,MySQL将BIT解释为TINYINT(1))。在MySQL 5.0.3中,BIT仅支持MyISAM。 MySQL 5.0.5将BIT支持扩展到MEMORY,InnoDB,BDB和NDBCLUSTER。“

为了转换,您可以使用ALTER TABLE:

ALTER TABLE MODIFY TINYINT(1);

或者如果你想使用新的BIT类型,你可以在那里使用它,但由于它有点新,我认为我们会继续在BIT类型上遇到一些问题。

虽然在所有列上都没有这样的好方法,但我通常在导入之前使用sed或perl -pi在我的.sql文件中进行修改。

希望有帮助!

+0

MySQL版本5.1.41,我想我会修改.sql文件,谢谢! – 2010-09-22 17:15:47