PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

postgresql - Ganzzahl außerhalb des zulässigen Bereichs

SERIAL Spalten werden als INTEGER gespeichert s, was ihnen einen maximalen Wert von 2-1 gibt. Also nach ~2 Milliarden Einfügungen Ihre neue id Werte passen nicht mehr.

Wenn Sie während der Lebensdauer Ihrer Tabelle so viele Einfügungen erwarten, erstellen Sie sie mit einer BIGSERIAL (intern ein BIGINT , mit einem Maximum von 2-1).

Wenn Sie später entdecken, dass ein SERIAL nicht groß genug ist, können Sie die Größe eines vorhandenen Felds erhöhen mit:

ALTER TABLE raw ALTER COLUMN id TYPE BIGINT;

Beachten Sie, dass es sich um BIGINT handelt hier statt BIGSERIAL (da Seriennummern keine echten Typen sind ). Und denken Sie daran, dass dies eine Weile dauern kann, wenn Sie tatsächlich 2 Milliarden Datensätze in Ihrer Tabelle haben ...