我使用MySQL Migration Toolkit将SQL Server 2008数据库迁移到MySQL。但是,它将我所有的bit
类型转换为tinyint
。我的数据模型不喜欢这个,因为我有一堆表达式测试true/false,而不是0-255。将MySQL tinyint类型转换为位
有没有办法告诉工具包转换这些不同的,或者一些SQL我可以在新的数据库上运行转换?
我使用MySQL Migration Toolkit将SQL Server 2008数据库迁移到MySQL。但是,它将我所有的bit
类型转换为tinyint
。我的数据模型不喜欢这个,因为我有一堆表达式测试true/false,而不是0-255。将MySQL tinyint类型转换为位
有没有办法告诉工具包转换这些不同的,或者一些SQL我可以在新的数据库上运行转换?
在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文件中进行修改。
希望有帮助!
MySQL版本5.1.41,我想我会修改.sql文件,谢谢! – 2010-09-22 17:15:47