3

When creating a table we normally make id field of integer type. But if I don't specify any value in length field how much length data will it store?

Rolen Koh
  • 719
  • 2
  • 11
  • 21
  • possible duplicate of [MySQL INT meaning](http://stackoverflow.com/questions/6817479/mysql-int-meaning) – JJJ Mar 15 '13 at 07:01
  • Length doesn't specify the size of the data it will store, but the size of the field used to display it. – JJJ Mar 15 '13 at 07:02

2 Answers2

7

I found an explanation elsewhere that says the value/length you specify when creating a numeric column only comes into play if you are using zerofill queries. Example here.

If you stored a value of 5
INT(4) would display 0005
INT(11) would display 00000000005

There's a note in mysql docs that tells of possible trouble when making it too small, so personally I just leave it blank when making a new numeric column.

Community
  • 1
  • 1
Vince K
  • 305
  • 3
  • 11
0

Juhana thanks for your link and answer. I got it. Length is for displaying how many characters will be shown and not how much data can be stored. So if I say integer type length is 3 then id will display upto 999 but will store values beyond that. I hope I got it right.

Rolen Koh
  • 719
  • 2
  • 11
  • 21
  • 2
    Well, not exactly. See the quote in the duplicate: *"The display width does not constrain the range of values that can be stored in the column. **Nor does it prevent values wider than the column display width from being displayed correctly.**"* If you have values >999 in a field with length 3, the values are shown correctly but the layout might break. It's basically just for making sure columns line up nicely when showing the table data. – JJJ Mar 15 '13 at 07:27