SERIAL
列はINTEGER
として保存されます s、最大値2-1を与えます。したがって、約20億回の挿入後、新しいid
値は適合しなくなります。
テーブルの存続期間中にこれほど多くの挿入が予想される場合は、BIGSERIAL
を使用して作成してください (内部的にはBIGINT
、最大2-1)。
後で発見した場合は、SERIAL
が十分に大きくない場合は、次の方法で既存のフィールドのサイズを増やすことができます:
ALTER TABLE raw ALTER COLUMN id TYPE BIGINT;
BIGINT
であることに注意してください BIGSERIAL
ではなくここに (シリアルは実際のタイプではないため> )。また、実際にテーブルに20億のレコードがある場合、これには少し時間がかかる可能性があることに注意してください...