MySQL描述输出说明

问题描述

| 该MysqL表由ActiveRecord生成
+--------------------+-------------+------+-----+---------+----------------+
| Field              | Type        | Null | Key | Default | Extra          |
+--------------------+-------------+------+-----+---------+----------------+
| id                 | int(11)     | NO   | PRI | NULL    | auto_increment |
| recordtype         | tinyint(4)  | YES  |     | NULL    |                |
| Location           | varchar(8)  | YES  |     | NULL    |                |
请在第二栏中向我解释tinyint(4)的含义。根据MysqL文档,tinyint的大小为1个字节。但这是否意味着实际上需要4个字节来存储此数据。生成第二列的代码是这样的。
t.column :recordtype,:integer,:limit => 1
    

解决方法

这意味着它为该数据类型使用1个字节,而不是4个字节,因此可能的数字范围更小(-128到127或0-255表示无符号,如果您愿意的话,则为2 ^ 8字节)。 TINYINT(4)是显示长度,因此它将使用四个数字来表示数字。