この質問に対する回答に、BIGINT(30)とINT(30)に違いはなく表示上の問題とのことでしたが、ちょっとmysqlのINTの仕様が分からなくなったので質問させてください。
一般的なint型とMySQLの()の数値の意味に対する自分の理解として
- INTは4バイト符号付整数 => 2^32(10進数で10桁)まで格納できる
- 数値型()の()には入れた数値分のZEROFILLを設定する
と思っていました。ですから、INT(30)としても実際に格納できる数値は2^32までなので表示できる限界はINT(11)までなのでこの書き方は意味がないのではないか?(BIGINT(30)は30桁までの数値を表示できる⇔INT(30)はINT(11)までの数値を表示できる)
「INT(11)にしろINT(30)にしろ、()に10以上の値を入れておけば、INTの最大格納可能数値の桁数までZEROFILLが効く」ということで宜しいでしょうか?
(容量とは無関係なのでINT(30)としても30桁までZEROFILLされるが保存されるのは2^32=2147483647まで=>表示上は「0000...002147483647」)
回答1件
あなたの回答
tips
プレビュー