serial je pseudo datový typ, nikoli skutečný datový typ. Je to integer níže s některými dalšími automaticky spouštěnými příkazy DDL:
- Vytvořte sekvenci (ve výchozím nastavení se shodným názvem).
- Nastavte sloupec
NOT NULLa výchozím nastavením pro kreslení z této sekvence. - Zajistěte, aby sloupec „vlastnil“ sekvenci.
Podrobnosti:
- Bezpečně a čistě přejmenovat tabulky, které používají sloupce sériového primárního klíče v Postgresu?
bigserial je stejný, postavený kolem bigint sloupec. Chcete bigint , ale už jsi toho dosáhl. Transformace existujícího serial sloupec do bigserial (nebo smallserial ), vše, co musíte udělat, je ALTER datový typ sloupce. Sekvence jsou obecně založeny na bigint , takže stejnou sekvenci lze použít pro jakékoli integer typ.
Chcete-li "změnit" bigint do bigserial nebo integer do serial , zbytek už musíte udělat ručně:
- Vytvoření sekvence PostgreSQL do pole (které není ID záznamu)
Skutečný datový typ je stále integer / bigint . Někteří klienti jako pgAdmin zobrazí datový typ serial v reverzním inženýrství CREATE TABLE skript, pokud jsou všechna kritéria pro serial jsou splněny.