sql >> データベース >  >> RDS >> PostgreSQL

postgresql-整数が範囲外です

    SERIAL 列はINTEGERとして保存されます s、最大値2-1を与えます。したがって、約20億回の挿入後、新しいid 値は適合しなくなります。

    テーブルの存続期間中にこれほど多くの挿入が予想される場合は、BIGSERIALを使用して作成してください (内部的にはBIGINT 、最大2-1)。

    後で発見した場合は、SERIAL が十分に大きくない場合は、次の方法で既存のフィールドのサイズを増やすことができます:

    ALTER TABLE raw ALTER COLUMN id TYPE BIGINT;
    

    BIGINTであることに注意してください BIGSERIALではなくここに (シリアルは実際のタイプではないため> )。また、実際にテーブルに20億のレコードがある場合、これには少し時間がかかる可能性があることに注意してください...




    1. SQLでテーブルの親子関係を使用して階層ツリーの1世代のみを選択するにはどうすればよいですか?

    2. フラットファイルデータベースとは何ですか?リレーショナルデータベースとどのように違いますか?

    3. SQLServerインデックスの断片化情報をプロアクティブに収集する方法

    4. RustのPostgreSQLからタイムゾーン(timestamptz)値のタイムスタンプを読み取るにはどうすればよいですか?