2011-05-25 101 views
1

這個MySQL表由ActiveRecord生成。MySQL描述輸出說明

+--------------------+-------------+------+-----+---------+----------------+ 
| 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的大小是一個字節。但這是否意味着實際需要4個字節來存儲這些數據。生成第二列的代碼就像這樣。

t.column :RecordType, :integer, :limit => 1 
+0

相關,如果感興趣,我在[本答案](http://stackoverflow.com/a/38679580)中寫了*描述所有表*。 – Drew 2016-07-31 00:53:47

回答

1

這意味着它使用1個字節用於該數據類型,而不是4,從而因此可能數目的範圍是小的(-128到127或0 - 255無符號或2^8如果你願意爲1字節)。 TINYINT(4)是顯示長度,所以它表示它將使用四位數來表示數字。