相关疑难解决方法(0)

52
推荐指数
2
解决办法
8万
查看次数

mysql中的INT(5)是什么意思?

我一直认为INT(5)表示最大为5位的数字.我尝试在其中输入一个巨大的数字,它不知何故被削减到2147483647

这显然不是5位数.那么INT(5)有什么限制?

mysql database

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

参数TINYINT(参数)的含义是什么?

我不明白为什么有这个选项。有符号 TINYINT 数据类型可以存储 -128 到 127 之间的整数值。

mysql> create table b (i tinyint(1));

mysql> insert into b values (42);

mysql> select * from b;
+------+
| i    |
+------+
|   42 |
+------+
Run Code Online (Sandbox Code Playgroud)

mysql database

4
推荐指数
1
解决办法
2593
查看次数

Rails 将 mysql tinyint(1) 视为布尔值 - 但我希望它是一个数字

Rails 4.2.1 使用 mysql2 gem。ActiveRecord 将数据类型为布尔值的 mysql 列视为tinyint(1)布尔值。但我想将它用作一个小数字 - 我想存储最多 100 的值,这对于tinyint(1). 当我尝试创建记录时,tinyint 列会转换为false,并收到折旧警告:

> Foo.create(my_tinyint_col: 13)
  (0.2ms)  BEGIN
    SQL (0.5ms)  INSERT INTO `foos` (`my_tinyint_col`) VALUES (0)
  (107.3ms)  COMMIT
  => #<Foo ID: 519, my_tinyint_col: false> 
Run Code Online (Sandbox Code Playgroud)

弃用警告:您尝试分配一个未显式的值truefalse分配给布尔列。目前该值转换为false. 这将更改以匹配 Ruby 的语义,并将在 Rails 5 中强制转换为true。如果您想维持当前行为,则应该显式处理您想要强制转换为的值false

如果我更改 的数据定义,my_tinyint_col问题tinyint(2)就会消失 - 但有没有办法tinyint(1)使用 ActiveRecord 将其视为数字?

mysql activerecord ruby-on-rails

4
推荐指数
1
解决办法
3672
查看次数

为什么MySQL没有定义布尔数据类型?

MySQL没有定义一个明确的布尔数据类型,而是选择为TINYINT(1)创建BOOL和BOOLEAN别名.为什么会这样?

mysql boolean

2
推荐指数
1
解决办法
1546
查看次数

标签 统计

mysql ×5

database ×2

activerecord ×1

boolean ×1

ruby-on-rails ×1