sql >> Base de Datos >  >> RDS >> PostgreSQL

postgresql - entero fuera de rango

SERIAL las columnas se almacenan como INTEGER s, dándoles un valor máximo de 2-1. Entonces, después de ~2 mil millones de inserciones, su nuevo id los valores ya no encajarán.

Si espera esta cantidad de inserciones durante la vida útil de su tabla, créela con un BIGSERIAL (internamente un BIGINT , con un máximo de 2-1).

Si descubre más tarde que un SERIAL no es lo suficientemente grande, puede aumentar el tamaño de un campo existente con:

ALTER TABLE raw ALTER COLUMN id TYPE BIGINT;

Tenga en cuenta que es BIGINT aquí, en lugar de BIGSERIAL (como las publicaciones seriadas no son tipos reales ). Y tenga en cuenta que, si realmente tiene 2 mil millones de registros en su tabla, esto puede llevar un poco de tiempo...