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...