PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

postgresql - entier hors limites

SERIAL les colonnes sont stockées en tant que INTEGER s, en leur donnant une valeur maximale de 2-1. Ainsi, après environ 2 milliards d'insertions, votre nouvel id les valeurs ne conviendront plus.

Si vous vous attendez à autant d'insertions sur la durée de vie de votre table, créez-la avec un BIGSERIAL (en interne un BIGINT , avec un maximum de 2-1).

Si vous découvrez plus tard qu'un SERIAL n'est pas assez grand, vous pouvez augmenter la taille d'un champ existant avec :

ALTER TABLE raw ALTER COLUMN id TYPE BIGINT;

Notez qu'il s'agit de BIGINT ici, plutôt que BIGSERIAL (comme les numéros de série ne sont pas de vrais types ). Et gardez à l'esprit que, si vous avez réellement 2 milliards d'enregistrements dans votre table, cela peut prendre un peu de temps...