相关疑难解决方法(0)

布尔值vs tinyint(1)表示MySQL中的布尔值

什么列类型最适合在MySQL数据库中用于布尔值?我用,boolean但我的同事使用tinyint(1).

mysql sql

116
推荐指数
5
解决办法
9万
查看次数

Tinyint vs Bit?

我不想在这里触发一场宗教战争,但似乎有两种思路可以在数据库中表示布尔值.有人说bit是适当的数据类型,而其他人认为tinyint更好.

我所知道的唯一区别是这些:

  • bit:存储大小为1位,可能的值为0或1
  • tinyint:存储大小为1个字节,可能的值为0-255

当您需要表示布尔值时,哪种数据类型更好?是tinyint值得的额外开销"以防万一"你需要值> 1?

mysql sql sql-server types

77
推荐指数
4
解决办法
4万
查看次数

Rails 4.1 - 在没有类型转换的情况下写入MySQL数据库

我的MySQL数据库中有一个列为TINYINT(1)的列.我需要在这个列中存储实际的整数.问题是,由于列类型,Rails 4.1假定此列仅包含布尔值,因此它在写入数据库时​​将除0或1之外的所有值都转换为0.

我不想简单地禁用布尔仿真,因为我们的数据库中有许多列,我们使用TINYINT(1)来实际表示一个布尔值.我目前无法更改MySQL中的列类型.

如何强制Rails 4.1绕过类型转换步骤并直接写入数据库呢?


(这个来自Rails 4.1源代码的摘录可能有一些用处:https://github.com/rails/rails/blob/4-1-stable/activerecord/lib/active_record/attribute_methods/write.rb)

ruby mysql activerecord ruby-on-rails ruby-on-rails-4.1

9
推荐指数
1
解决办法
734
查看次数