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

Jak převést primární klíč z celého čísla na sériový?

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:

  1. Vytvořte sekvenci (ve výchozím nastavení se shodným názvem).
  2. Nastavte sloupec NOT NULL a výchozím nastavením pro kreslení z této sekvence.
  3. 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.




  1. Resetování ukazatele pole ve výsledcích PDO

  2. cizí klíče MySQL

  3. Jak zahrnout výsledky s nerozhodným výsledkem na posledním místě při použití klauzule TOP na serveru SQL Server

  4. Jak najít položku seznamu na zadané pozici v SQL Server