2010-12-02 10 views
3

私はMySQLのテーブルのためのタイプBIGINT(12)の新しい列を作成するとき、私は、フィールドは、最大12桁の整数に制限されているという仮定の下にされています。しかし、私は最近、16桁までの値が警告や問題なしに書き込まれ及びBIGINT(12)定義された列の中から選択されることが可能であることに気づきました。MySQLのint型の定義説明

誰かがこのような場合は、その列の定義が実際に何を意味するのか、なぜ私が理解する助けてくださいことはできますか?前もって感謝します!

答えて

5

BIGINT(12)は、全て切り捨てられません。 12は表示目的で使用されます。

は数値型が

MySQLは は、オプションのベースキーワード 次 括弧内の整数データ型のディスプレイ 幅を指定するための拡張機能をサポートしている属性Numeric Types

を見てくださいタイプ。例えば、INT(4) は、4桁の表示幅 とINTを指定します。このオプションのディスプレイ の幅は、アプリケーションによって に の列に指定された幅よりも小さい幅の の整数値を、 のスペースで左に埋めて表示することに使用できます。 (すなわち、この幅はアプリケーション次第である 結果セットで返されたメタデータに 存在は、それが使用されるかどうか。あるか。)

表示幅ができる値の範囲を制限しません列に が格納されています。また、それが正しく表示されているから、カラム表示 幅より広い 値を防ぐん。

+0

ので、あなたが私に言っているのは12を指定することによって、私は実際に資源の面で何かを保存していないよということで、それが唯一のオプションの値だということ表示プログラムは、無視するか否かを選択することができる。基本的には、bigint(X)を使用すると、bigintが格納できる値の全範囲を格納でき、ディスク領域を適切に割り当てることができますか? –

+0

私はそれがドキュメントが言っているものだと思います。 –

+0

マインドブローイング。私は10年以上にわたり手術で働いていた少数の人々に尋ね、彼らはそれを説明することができませんでした。助けてくれてありがとう。 –

関連する問題