sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan konverteres primærnøgle fra heltal til seriel?

serial er en pseudo datatype, ikke en faktisk datatype. Det er et integer nedenunder med nogle ekstra DDL-kommandoer, der udføres automatisk:

  1. Opret en sekvens (med matchende navn som standard).
  2. Indstil kolonnen NOT NULL og standarden til at tegne fra den sekvens.
  3. Gør kolonnen til at "eje" sekvensen.

Detaljer:

  • Sikkert og rent omdøb tabeller, der bruger serielle primærnøglekolonner i Postgres?

En bigserial er den samme, bygget op omkring en bigint kolonne. Du vil have bigint , men det har du allerede opnået. At transformere en eksisterende serial kolonne til en bigserial (eller smallserial ), alt hvad du skal gøre er at ALTER kolonnens datatype. Sekvenser er generelt baseret på bigint , så den samme sekvens kan bruges til ethvert integer type.

For at "ændre" en bigint ind i en bigserial eller et integer ind i en serial , du skal bare klare resten i hånden:

  • Oprettelse af en PostgreSQL-sekvens til et felt (som ikke er id'et for posten)

Den faktiske datatype er stadig integer / bigint . Nogle klienter som pgAdmin vil vise datatypen serial i den omvendte konstruktion af CREATE TABLE script, hvis alle kriterier for en serial er opfyldt.




  1. SQL Server (MSSQL DBA) Databasevejledninger for begyndere, databaseadministratorer

  2. Faldgruber, der skal undgås, når du bruger den nye Microsoft SSMA version 7.8

  3. Postgresql:Scripting af psql-udførelse med adgangskode

  4. SQL-forespørgselsoptimering:Bedste fremgangsmåder for forbedret ydeevne