PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

postgresql - inteiro fora do intervalo


SERIAL as colunas são armazenadas como INTEGER s, dando-lhes um valor máximo de 2-1. Então, após cerca de 2 bilhões de inserções, seu novo id os valores não cabem mais.

Se você espera tantas inserções durante a vida útil da sua tabela, crie-a com um BIGSERIAL (internamente um BIGINT , com um máximo de 2-1).

Se você descobrir mais tarde que um SERIAL não for grande o suficiente, você pode aumentar o tamanho de um campo existente com:
ALTER TABLE raw ALTER COLUMN id TYPE BIGINT;

Observe que é BIGINT aqui, em vez de BIGSERIAL (como serials não são tipos reais ). E lembre-se de que, se você realmente tiver 2 bilhões de registros em sua tabela, isso pode demorar um pouco...