PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

postgresql - intero fuori intervallo

SERIAL le colonne sono memorizzate come INTEGER s, dando loro un valore massimo di 2-1. Quindi, dopo circa 2 miliardi di inserimenti, il tuo nuovo id i valori non si adatteranno più.

Se ti aspetti così tanti inserti nel corso della vita del tuo tavolo, crealo con un BIGSERIAL (internamente un BIGINT , con un massimo di 2-1).

Se scopri in seguito che un SERIAL non è abbastanza grande, puoi aumentare le dimensioni di un campo esistente con:

ALTER TABLE raw ALTER COLUMN id TYPE BIGINT;

Nota che è BIGINT qui, anziché BIGSERIAL (poiché i serial non sono tipi reali ). E tieni presente che, se hai effettivamente 2 miliardi di record nella tua tabella, questo potrebbe richiedere un po' di tempo...