sql >> Databáze >  >> RDS >> PostgreSQL

postgresql - celé číslo mimo rozsah

SERIAL sloupce jsou uloženy jako INTEGER s, což jim dává maximální hodnotu 2-1. Takže po ~2 miliardách vložení bude vaše nové id hodnoty již nebudou sedět.

Pokud očekáváte tolik vložek za dobu životnosti vaší tabulky, vytvořte ji pomocí BIGSERIAL (interně BIGINT , s maximem 2-1).

Pokud později zjistíte, že SERIAL není dostatečně velké, můžete zvětšit velikost existujícího pole pomocí:

ALTER TABLE raw ALTER COLUMN id TYPE BIGINT;

Všimněte si, že je to BIGINT zde, spíše než BIGSERIAL (protože seriály nejsou skutečné typy ). A mějte na paměti, že pokud máte v tabulce skutečně 2 miliardy záznamů, může to chvíli trvat...




  1. Konflikt typu MySqlParameter při použití Entity Framework s Pomelo

  2. Kde použít mysql_real_escape_string, aby se zabránilo SQL Injection?

  3. Exportujte výsledky dotazů SQLite do souboru CSV

  4. Jak povolit protokol pomalých dotazů v MySQL