首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MySQL tinyint类型转换为位

问将MySQL tinyint类型转换为位
EN

Stack Overflow用户
提问于 2010-09-23 00:59:24
回答 1查看 1.5K关注 0票数 0

我使用MySQL迁移工具包将SQL Server2008数据库迁移到MySQL。但是,它将我所有的bit类型都转换为tinyint。我的数据模型不喜欢这样,因为我有一堆表达式来测试true/false,而不是0-255。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-23 01:11:22

在MySQL中,5.0.5位之前的版本并不存在,所以迁移工具包可能还没有更新,但你可以使用TINYINT(1)来代替,根据mysql网站上的这句话:

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

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

ALTER TABLE MODIFY TINYINT(1)

或者,如果你想使用新的bit类型,你也可以在这里进行细分,但由于它是比较新的,我认为我们仍然会遇到一些BIT类型的问题。

不过,没有一种很好的方法可以对所有列执行此操作,在导入之前,我通常使用sed或perl -pi在.sql文件中进行修改。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3771712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档