mysql中Tinyint(1)和Tinyint(4)的区别

3 篇文章 0 订阅
3 篇文章 0 订阅

在mysql中如果设置字段为Tinyint类型,补0为1的话,比如:Tinyint(1) 这个不管在数据库中保存1,2,3,4的时候。在java或者c#获取表的对象,转换成类对象的时候,会变成boolean /bool 值类型。

如果想要保存具体的数字那么就用Tinyint(4) 就可以保存数据。

在c#的有些框架,比如EF会把Tinyint(4)转换成Sbyte类型。其实长度也是-128到127

也就是网络上的一些网友提出的解决方案:

Tinyint(1)  就只用来保存 bool 值  只有0和1  不要保存其他的值

如果要保存多的值,就用 Tinyint(4) 这样的,那么到了Ef中这个 类型会变成  sbyte ,这个就是一个整形 .

这个是摘自官方的mysql关于tinyint的说法:

mysql关于tinyint的解释

如果你的数据库已经建立好了,并且 有很多的话。正好语言是java的话,可以在jdbc连接串上添加参数:

jdbc://mysql://127.0.0.1/数据库名?tinyInt1isBit=false

就可以了。如果数据库中的表不多的话可以直接把Tinyint(1)改成Tinyint(4).

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值