64ビット環境でのデータベースの符号付INTEGER型整数の範囲 
2015/08/26 Wed.
64ビット環境ではPHPの符号付INTEGER型整数の上限は 9223372036854775807 になります。
PostgreSQLはどうなるんだろう?と思って調べてみたら 2147483647 でした。
PostgreSQLの場合、OSのビット数に関係なく「型宣言」で整数の範囲が決まるようです。
INTEGER → 2147483647
BIGINT → 9223372036854775807
気を付けなくちゃいけないのはPHPでビット操作をする場合。PostgreSQLのINTEGER型をPHPの変数に格納した時点で64ビット整数になります。
INTEGER型で「-1」は「0xffffffff」ですが、PHPの変数では「0xffffffffffffffff」になる。
注意が必要です。
ついでにSQlite3も調べてみました。
64ビット環境でのINTEGER型の上限は 9223372036854775807 です。
PostgreSQLはどうなるんだろう?と思って調べてみたら 2147483647 でした。
PostgreSQLの場合、OSのビット数に関係なく「型宣言」で整数の範囲が決まるようです。
INTEGER → 2147483647
BIGINT → 9223372036854775807
気を付けなくちゃいけないのはPHPでビット操作をする場合。PostgreSQLのINTEGER型をPHPの変数に格納した時点で64ビット整数になります。
INTEGER型で「-1」は「0xffffffff」ですが、PHPの変数では「0xffffffffffffffff」になる。
注意が必要です。
ついでにSQlite3も調べてみました。
64ビット環境でのINTEGER型の上限は 9223372036854775807 です。
- 関連記事
category: データベース
この記事へのコメント
コメントの投稿
コメントは全て管理人が内容を確認してから表示されます(非公開コメント除く)。
内容によっては表示されない場合がありますことご了承願います。
内容によっては表示されない場合がありますことご了承願います。
« PostgreSQLで「invalid input syntax for type timestamp with time zone」
【PostgreSQL】SERIAL型とROLLBACK »