19

私はpostgresqlを使用していますが、どのくらい大きいのか疑問に思っていました

id INTEGER PRIMARY KEY

と比較することができます

id SERIAL PRIMARY KEY

Java では、anintは 4 バイト (32 ビット) であるため、最大 2,147,483,647 になります。これはpostgresqlの場合ですか?もしそうなら、2,147,483,647行を超えることはできないということですか?

4

2 に答える 2

4

smallserial、serial、bigserial のデータ型は真の型ではなく、一意の識別子列を作成するための便宜的な表記法にすぎません (他のデータベースでサポートされている AUTO_INCREMENT プロパティと同様)。

Abigserialは 8 バイト長です。それでも不十分な場合は、128 ビットの uuidを使用できます。

create table t (
    id uuid primary key
);
insert into t (id)
select uuid_generate_v1mc();
select * from t;
                  id                  
--------------------------------------
 916bf7e6-f0c2-11e2-8d14-d372d5ab075f

このuuid_generate_v1mc機能はuuid-ossp モジュールによって提供されます

uuid 関数の主な利点は、さまざまなシステム間で一意である可能性が非常に高い ID を生成することです。A ではserial、これらのシステム間で衝突が発生します。

于 2013-07-19T22:31:16.450 に答える